Add old project files, initial state

This commit is contained in:
Török István 2025-01-07 11:13:49 +01:00
parent 4733cb68c6
commit 15e58d32fe
10 changed files with 3817 additions and 0 deletions

10
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,10 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide"
],
"unwantedRecommendations": [
"ms-vscode.cpptools-extension-pack"
]
}

13
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,13 @@
{
"sonarlint.pathToCompileCommands": "${workspaceFolder}\\compile_commands.json",
"outline.showConstants": false,
"outline.showArrays": false,
"outline.showBooleans": false,
"outline.showEnumMembers": false,
"outline.showFields": false,
"outline.showFiles": false,
"outline.showNamespaces": false,
"outline.showProperties": false,
"outline.showTypeParameters": false,
"outline.showVariables": false
}

232
compile_commands.json Normal file
View File

@ -0,0 +1,232 @@
[
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp9k_kbse1.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\Esp.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp6q394xjq.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\FirmwareMSC.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpg01t_jf3.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\FunctionalInterrupt.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpge6kqzh6.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\HWCDC.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp2mfm4_w0.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\HardwareSerial.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmphcld15xj.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\IPAddress.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpnnf495as.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\IPv6Address.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmprhe56ba3.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\MD5Builder.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp3c8tm3t9.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\Print.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpbvk5_8hh.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\Stream.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpami9vacs.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\StreamString.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmphq5tfvuo.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\Tone.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpxqjyql9g.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\USB.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp4lgmm9rz.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\USBCDC.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp27qpawx3.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\USBMSC.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp9szwrax5.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\WMath.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp5s7914ld.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\WString.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpy4ou81av.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\base64.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpfaqtb5uf.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\cbuf.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmppkeps5pj.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-adc.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp44ybcjwa.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-bt.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpefdpmd0i.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-cpu.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmplulj0ps1.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-dac.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpt1mk4c6m.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-gpio.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpj4k79v3c.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-i2c-slave.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmphts3byyn.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-i2c.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpyk1mbp68.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-ledc.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp3zz3ax35.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-matrix.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmphj0rmx_5.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-misc.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp1ubf4id2.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-psram.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp2m6gr80o.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-rmt.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpistd5r5z.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-sigmadelta.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpc7pylylf.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-spi.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpzk0i73a3.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-time.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp7ldc2891.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-timer.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpkgbx7cfr.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-tinyusb.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpp8z6fpzz.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-touch.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpnmdalrmd.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\esp32-hal-uart.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpb8d8hvg4.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\firmware_msc_fat.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpps1j4b0w.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\libb64\\cdecode.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp9ehksjdt.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\libb64\\cencode.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmph4z5png5.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\main.cpp"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp0yarrh26.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\stdlib_noniso.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmppmwrvqf5.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\wiring_pulse.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-gcc.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmp3maj5eaj.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "C:\\Users\\rakoc\\.platformio\\packages\\framework-arduinoespressif32\\cores\\esp32\\wiring_shift.c"
},
{
"command": "C:\\Users\\rakoc\\.platformio\\packages\\toolchain-xtensa-esp32\\bin\\xtensa-esp32-elf-g++.exe @D:\\vscode\\vibrator\\Vibrator\\.pio\\build\\heltec_wifi_lora_32_V2\\tmpvwga35ng.tmp",
"directory": "D:\\vscode\\vibrator\\Vibrator",
"file": "D:\\vscode\\vibrator\\Vibrator\\src\\main.cpp"
}
]

39
include/README Normal file
View File

@ -0,0 +1,39 @@
This directory is intended for project header files.
A header file is a file containing C declarations and macro definitions
to be shared between several project source files. You request the use of a
header file in your project source file (C, C++, etc) located in `src` folder
by including it, with the C preprocessing directive `#include'.
```src/main.c
#include "header.h"
int main (void)
{
...
}
```
Including a header file produces the same results as copying the header file
into each source file that needs it. Such copying would be time-consuming
and error-prone. With a header file, the related declarations appear
in only one place. If they need to be changed, they can be changed in one
place, and programs that include the header file will automatically use the
new version when next recompiled. The header file eliminates the labor of
finding and changing all the copies as well as the risk that a failure to
find one copy will result in inconsistencies within a program.
In C, the usual convention is to give header files names that end with `.h'.
It is most portable to use only letters, digits, dashes, and underscores in
header file names, and at most one dot.
Read more about using header files in official GCC documentation:
* Include Syntax
* Include Operation
* Once-Only Headers
* Computed Includes
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html

46
lib/README Normal file
View File

@ -0,0 +1,46 @@
This directory is intended for project specific (private) libraries.
PlatformIO will compile them to static libraries and link into executable file.
The source code of each library should be placed in a an own separate directory
("lib/your_library_name/[here are source files]").
For example, see a structure of the following two libraries `Foo` and `Bar`:
|--lib
| |
| |--Bar
| | |--docs
| | |--examples
| | |--src
| | |- Bar.c
| | |- Bar.h
| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html
| |
| |--Foo
| | |- Foo.c
| | |- Foo.h
| |
| |- README --> THIS FILE
|
|- platformio.ini
|--src
|- main.c
and a contents of `src/main.c`:
```
#include <Foo.h>
#include <Bar.h>
int main (void)
{
...
}
```
PlatformIO Library Dependency Finder will find automatically dependent
libraries scanning project source files.
More information about PlatformIO Library Dependency Finder
- https://docs.platformio.org/page/librarymanager/ldf.html

22
platformio.ini Normal file
View File

@ -0,0 +1,22 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:esp32dev]
monitor_speed = 115200
platform = espressif32
board = esp32dev
framework = arduino
lib_deps =
sparkfun/SparkFun u-blox GNSS Arduino Library@^2.2.13
adafruit/Adafruit SSD1306@^2.5.7
adafruit/Adafruit GFX Library@^1.11.3
greiman/SdFat@^2.2.0
jchristensen/JC_Button@^2.1.2
fbiego/ESP32Time@^2.0.0

2940
src/main.cpp Normal file

File diff suppressed because it is too large Load Diff

76
src/mybluetooth.h Normal file
View File

@ -0,0 +1,76 @@
#include "BluetoothSerial.h"
class BTSerialInterface
{
public:
virtual bool begin(String deviceName) = 0;
virtual void disconnect() = 0;
virtual void end() = 0;
virtual esp_err_t register_callback(esp_spp_cb_t * callback) = 0;
virtual void setTimeout(unsigned long timeout) = 0;
virtual int available() = 0;
virtual bool hasClient() = 0;
virtual size_t readBytes(uint8_t *buffer, size_t bufferSize) = 0;
//virtual bool isCongested() = 0;
virtual size_t write(const uint8_t *buffer, size_t size) = 0;
virtual void flush() = 0;
};
class BTClassicSerial : public virtual BTSerialInterface, public BluetoothSerial
{
// Everything is already implemented in BluetoothSerial since the code was
// originally written using that class
public:
bool begin(String deviceName)
{
return BluetoothSerial::begin(deviceName);
}
void disconnect()
{
BluetoothSerial::disconnect();
}
void end()
{
BluetoothSerial::end();
}
esp_err_t register_callback(esp_spp_cb_t * callback)
{
return BluetoothSerial::register_callback(callback);
}
void setTimeout(unsigned long timeout)
{
BluetoothSerial::setTimeout(timeout);
}
int available()
{
return BluetoothSerial::available();
}
bool hasClient()
{
return BluetoothSerial::hasClient();
}
size_t readBytes(uint8_t *buffer, size_t bufferSize)
{
return BluetoothSerial::readBytes(buffer, bufferSize);
}
size_t write(const uint8_t *buffer, size_t size)
{
return BluetoothSerial::write(buffer, size);
}
void flush()
{
BluetoothSerial::flush();
}
};

428
src/settings.h Normal file
View File

@ -0,0 +1,428 @@
#include <SparkFun_u-blox_GNSS_Arduino_Library.h> //http://librarymanager/All#SparkFun_u-blox_GNSS
//System can enter a variety of states
//See statemachine diagram at: https://lucid.app/lucidchart/53519501-9fa5-4352-aa40-673f88ca0c9b/edit?invitationId=inv_ebd4b988-513d-4169-93fd-c291851108f8
typedef enum
{
STATE_ROVER_NOT_STARTED = 0,
STATE_ROVER_NO_FIX,
STATE_ROVER_FIX,
STATE_ROVER_RTK_FLOAT,
STATE_ROVER_RTK_FIX,
STATE_BASE_NOT_STARTED,
STATE_BASE_TEMP_SETTLE, //User has indicated base, but current pos accuracy is too low
STATE_BASE_TEMP_SURVEY_STARTED,
STATE_BASE_TEMP_TRANSMITTING,
STATE_BASE_FIXED_NOT_STARTED,
STATE_BASE_FIXED_TRANSMITTING,
STATE_BUBBLE_LEVEL,
STATE_MARK_EVENT,
STATE_DISPLAY_SETUP,
STATE_WIFI_CONFIG_NOT_STARTED,
STATE_WIFI_CONFIG,
STATE_TEST,
STATE_TESTING,
STATE_PROFILE,
STATE_KEYS_STARTED,
STATE_KEYS_NEEDED,
STATE_KEYS_WIFI_STARTED,
STATE_KEYS_WIFI_CONNECTED,
STATE_KEYS_WIFI_TIMEOUT,
STATE_KEYS_EXPIRED,
STATE_KEYS_DAYS_REMAINING,
STATE_KEYS_LBAND_CONFIGURE,
STATE_KEYS_LBAND_ENCRYPTED,
STATE_KEYS_PROVISION_WIFI_STARTED,
STATE_KEYS_PROVISION_WIFI_CONNECTED,
STATE_KEYS_PROVISION_WIFI_TIMEOUT,
STATE_ESPNOW_PAIRING_NOT_STARTED,
STATE_ESPNOW_PAIRING,
STATE_SHUTDOWN,
} SystemState;
volatile SystemState systemState = STATE_ROVER_NOT_STARTED;
SystemState lastSystemState = STATE_ROVER_NOT_STARTED;
SystemState requestedSystemState = STATE_ROVER_NOT_STARTED;
bool newSystemStateRequested = false;
//The setup display can show a limited set of states
//When user pauses for X amount of time, system will enter that state
SystemState setupState = STATE_MARK_EVENT;
typedef enum
{
RTK_SURVEYOR = 0,
RTK_EXPRESS,
RTK_FACET,
RTK_EXPRESS_PLUS,
RTK_FACET_LBAND,
} ProductVariant;
ProductVariant productVariant = RTK_SURVEYOR;
//Each constellation will have its config key, enable, and a visible name
typedef struct ubxConstellation
{
uint32_t configKey;
uint8_t gnssID;
bool enabled;
char textName[30];
} ubxConstellation;
//Different ZED modules support different messages (F9P vs F9R vs F9T)
//Create binary packed struct for different platforms
typedef enum ubxPlatform
{
PLATFORM_F9P = 0b0001,
PLATFORM_F9R = 0b0010,
PLATFORM_F9T = 0b0100,
} ubxPlatform;
//Data port mux (RTK Express) can enter one of four different connections
typedef enum muxConnectionType_e
{
MUX_UBLOX_NMEA = 0,
MUX_PPS_EVENTTRIGGER,
MUX_I2C_WT,
MUX_ADC_DAC,
} muxConnectionType_e;
//User can enter fixed base coordinates in ECEF or degrees
typedef enum
{
COORD_TYPE_ECEF = 0,
COORD_TYPE_GEODETIC,
} coordinateType_e;
//User can select output pulse as either falling or rising edge
typedef enum
{
PULSE_FALLING_EDGE = 0,
PULSE_RISING_EDGE,
} pulseEdgeType_e;
typedef enum RadioType_e
{
RADIO_EXTERNAL = 0,
RADIO_ESPNOW,
} RadioType_e;
typedef enum BluetoothRadioType_e
{
BLUETOOTH_RADIO_SPP = 0,
BLUETOOTH_RADIO_BLE,
BLUETOOTH_RADIO_OFF,
} BluetoothRadioType_e;
enum LogTestState
{
LOGTEST_START = 0,
LOGTEST_4HZ_5MSG_10MS,
LOGTEST_4HZ_7MSG_10MS,
LOGTEST_10HZ_5MSG_10MS,
LOGTEST_10HZ_7MSG_10MS,
LOGTEST_4HZ_5MSG_0MS,
LOGTEST_4HZ_7MSG_0MS,
LOGTEST_10HZ_5MSG_0MS,
LOGTEST_10HZ_7MSG_0MS,
LOGTEST_4HZ_5MSG_50MS,
LOGTEST_4HZ_7MSG_50MS,
LOGTEST_10HZ_5MSG_50MS,
LOGTEST_10HZ_7MSG_50MS,
LOGTEST_END,
} ;
uint8_t logTestState = LOGTEST_END;
//Custom NMEA sentence types output to the log file
typedef enum
{
CUSTOM_NMEA_TYPE_RESET_REASON = 0,
CUSTOM_NMEA_TYPE_WAYPOINT,
CUSTOM_NMEA_TYPE_EVENT,
CUSTOM_NMEA_TYPE_SYSTEM_VERSION,
CUSTOM_NMEA_TYPE_ZED_VERSION,
CUSTOM_NMEA_TYPE_STATUS,
CUSTOM_NMEA_TYPE_LOGTEST_STATUS,
} customNmeaType_e;
//These are the allowable constellations to receive from and log (if enabled)
//Tested with u-center v21.02
#define MAX_CONSTELLATIONS 6 //(sizeof(ubxConstellations)/sizeof(ubxConstellation))
//Each message will have a rate, a visible name, and a class
typedef struct ubxMsg
{
uint32_t msgConfigKey;
uint8_t msgID;
uint8_t msgClass;
uint8_t msgRate;
char msgTextName[30];
uint8_t supported;
} ubxMsg;
//These are the allowable messages to broadcast and log (if enabled)
//Tested with u-center v21.02
#define MAX_UBX_MSG (13 + 25 + 5 + 10 + 3 + 12 + 5) //(sizeof(ubxMessages)/sizeof(ubxMsg))
//This is all the settings that can be set on RTK Surveyor. It's recorded to NVM and the config file.
typedef struct {
int sizeOfSettings = 0; //sizeOfSettings **must** be the first entry and must be int
int rtkIdentifier = RTK_IDENTIFIER; // rtkIdentifier **must** be the second entry
bool printDebugMessages = false;
bool enableSD = true;
bool enableDisplay = true;
int maxLogTime_minutes = 60 * 24; //Default to 24 hours
int observationSeconds = 60; //Default survey in time of 60 seconds
float observationPositionAccuracy = 5.0; //Default survey in pos accy of 5m
bool fixedBase = false; //Use survey-in by default
bool fixedBaseCoordinateType = COORD_TYPE_ECEF;
double fixedEcefX = -1280206.568;
double fixedEcefY = -4716804.403;
double fixedEcefZ = 4086665.484;
double fixedLat = 40.09029479;
double fixedLong = -105.18505761;
double fixedAltitude = 1560.089;
uint32_t dataPortBaud = 460800; //Default to 460800bps to support >10Hz update rates
uint32_t radioPortBaud = 57600; //Default to 57600bps to support connection to SiK1000 radios
float surveyInStartingAccuracy = 1.0; //Wait for 1m horizontal positional accuracy before starting survey in
uint16_t measurementRate = 250; //Elapsed ms between GNSS measurements. 25ms to 65535ms. Default 4Hz.
uint16_t navigationRate = 1; //Ratio between number of measurements and navigation solutions. Default 1 for 4Hz (with measurementRate).
bool enableI2Cdebug = false; //Turn on to display GNSS library debug messages
bool enableHeapReport = false; //Turn on to display free heap
bool enableTaskReports = false; //Turn on to display task high water marks
muxConnectionType_e dataPortChannel = MUX_UBLOX_NMEA; //Mux default to ublox UART1
uint16_t spiFrequency = 16; //By default, use 16MHz SPI
bool enableLogging = true; //If an SD card is present, log default sentences
uint16_t sppRxQueueSize = 2048;
uint16_t sppTxQueueSize = 512;
uint8_t dynamicModel = DYN_MODEL_PORTABLE;
SystemState lastState = STATE_ROVER_NOT_STARTED; //For Express, start unit in last known state
bool enableSensorFusion = false; //If IMU is available, avoid using it unless user specifically selects automotive
bool autoIMUmountAlignment = true; //Allows unit to automatically establish device orientation in vehicle
bool enableResetDisplay = false;
uint8_t resetCount = 0;
bool enableExternalPulse = true; //Send pulse once lock is achieved
uint32_t externalPulseTimeBetweenPulse_us = 900000; //us between pulses, max of 65s
uint32_t externalPulseLength_us = 100000; //us length of pulse
pulseEdgeType_e externalPulsePolarity = PULSE_RISING_EDGE; //Pulse rises for pulse length, then falls
bool enableExternalHardwareEventLogging = false; //Log when INT/TM2 pin goes low
bool enableMarksFile = false; //Log marks to the marks file
ubxMsg ubxMessages[MAX_UBX_MSG] = //Report rates for all known messages
{
//NMEA
{UBLOX_CFG_MSGOUT_NMEA_ID_DTM_UART1, UBX_NMEA_DTM, UBX_CLASS_NMEA, 0, "UBX_NMEA_DTM", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_GBS_UART1, UBX_NMEA_GBS, UBX_CLASS_NMEA, 0, "UBX_NMEA_GBS", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_GGA_UART1, UBX_NMEA_GGA, UBX_CLASS_NMEA, 1, "UBX_NMEA_GGA", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_GLL_UART1, UBX_NMEA_GLL, UBX_CLASS_NMEA, 0, "UBX_NMEA_GLL", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_GNS_UART1, UBX_NMEA_GNS, UBX_CLASS_NMEA, 0, "UBX_NMEA_GNS", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_GRS_UART1, UBX_NMEA_GRS, UBX_CLASS_NMEA, 0, "UBX_NMEA_GRS", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_GSA_UART1, UBX_NMEA_GSA, UBX_CLASS_NMEA, 1, "UBX_NMEA_GSA", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_GST_UART1, UBX_NMEA_GST, UBX_CLASS_NMEA, 1, "UBX_NMEA_GST", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_GSV_UART1, UBX_NMEA_GSV, UBX_CLASS_NMEA, 4, "UBX_NMEA_GSV", (PLATFORM_F9P | PLATFORM_F9R)}, //Default to 1 update every 4 fixes
{UBLOX_CFG_MSGOUT_NMEA_ID_RMC_UART1, UBX_NMEA_RMC, UBX_CLASS_NMEA, 1, "UBX_NMEA_RMC", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_VLW_UART1, UBX_NMEA_VLW, UBX_CLASS_NMEA, 0, "UBX_NMEA_VLW", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_VTG_UART1, UBX_NMEA_VTG, UBX_CLASS_NMEA, 0, "UBX_NMEA_VTG", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_NMEA_ID_ZDA_UART1, UBX_NMEA_ZDA, UBX_CLASS_NMEA, 0, "UBX_NMEA_ZDA", (PLATFORM_F9P | PLATFORM_F9R)},
//NAV
{UBLOX_CFG_MSGOUT_UBX_NAV_ATT_UART1, UBX_NAV_ATT, UBX_CLASS_NAV, 0, "UBX_NAV_ATT", (PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_CLOCK_UART1, UBX_NAV_CLOCK, UBX_CLASS_NAV, 0, "UBX_NAV_CLOCK", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_DOP_UART1, UBX_NAV_DOP, UBX_CLASS_NAV, 0, "UBX_NAV_DOP", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_EOE_UART1, UBX_NAV_EOE, UBX_CLASS_NAV, 0, "UBX_NAV_EOE", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_GEOFENCE_UART1, UBX_NAV_GEOFENCE, UBX_CLASS_NAV, 0, "UBX_NAV_GEOFENCE", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSECEF_UART1, UBX_NAV_HPPOSECEF, UBX_CLASS_NAV, 0, "UBX_NAV_HPPOSECEF", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_HPPOSLLH_UART1, UBX_NAV_HPPOSLLH, UBX_CLASS_NAV, 0, "UBX_NAV_HPPOSLLH", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_ODO_UART1, UBX_NAV_ODO, UBX_CLASS_NAV, 0, "UBX_NAV_ODO", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_ORB_UART1, UBX_NAV_ORB, UBX_CLASS_NAV, 0, "UBX_NAV_ORB", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_POSECEF_UART1, UBX_NAV_POSECEF, UBX_CLASS_NAV, 0, "UBX_NAV_POSECEF", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_POSLLH_UART1, UBX_NAV_POSLLH, UBX_CLASS_NAV, 0, "UBX_NAV_POSLLH", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_PVT_UART1, UBX_NAV_PVT, UBX_CLASS_NAV, 0, "UBX_NAV_PVT", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_RELPOSNED_UART1, UBX_NAV_RELPOSNED, UBX_CLASS_NAV, 0, "UBX_NAV_RELPOSNED", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_SAT_UART1, UBX_NAV_SAT, UBX_CLASS_NAV, 0, "UBX_NAV_SAT", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_SIG_UART1, UBX_NAV_SIG, UBX_CLASS_NAV, 0, "UBX_NAV_SIG", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_STATUS_UART1, UBX_NAV_STATUS, UBX_CLASS_NAV, 0, "UBX_NAV_STATUS", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_SVIN_UART1, UBX_NAV_SVIN, UBX_CLASS_NAV, 0, "UBX_NAV_SVIN", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_UBX_NAV_TIMEBDS_UART1, UBX_NAV_TIMEBDS, UBX_CLASS_NAV, 0, "UBX_NAV_TIMEBDS", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGAL_UART1, UBX_NAV_TIMEGAL, UBX_CLASS_NAV, 0, "UBX_NAV_TIMEGAL", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGLO_UART1, UBX_NAV_TIMEGLO, UBX_CLASS_NAV, 0, "UBX_NAV_TIMEGLO", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_TIMEGPS_UART1, UBX_NAV_TIMEGPS, UBX_CLASS_NAV, 0, "UBX_NAV_TIMEGPS", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_TIMELS_UART1, UBX_NAV_TIMELS, UBX_CLASS_NAV, 0, "UBX_NAV_TIMELS", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_TIMEUTC_UART1, UBX_NAV_TIMEUTC, UBX_CLASS_NAV, 0, "UBX_NAV_TIMEUTC", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_VELECEF_UART1, UBX_NAV_VELECEF, UBX_CLASS_NAV, 0, "UBX_NAV_VELECEF", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_NAV_VELNED_UART1, UBX_NAV_VELNED, UBX_CLASS_NAV, 0, "UBX_NAV_VELNED", (PLATFORM_F9P | PLATFORM_F9R)},
//RXM
{UBLOX_CFG_MSGOUT_UBX_RXM_MEASX_UART1, UBX_RXM_MEASX, UBX_CLASS_RXM, 0, "UBX_RXM_MEASX", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_RXM_RAWX_UART1, UBX_RXM_RAWX, UBX_CLASS_RXM, 0, "UBX_RXM_RAWX", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_RXM_RLM_UART1, UBX_RXM_RLM, UBX_CLASS_RXM, 0, "UBX_RXM_RLM", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_RXM_RTCM_UART1, UBX_RXM_RTCM, UBX_CLASS_RXM, 0, "UBX_RXM_RTCM", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_RXM_SFRBX_UART1, UBX_RXM_SFRBX, UBX_CLASS_RXM, 0, "UBX_RXM_SFRBX", (PLATFORM_F9P | PLATFORM_F9R)},
//MON
{UBLOX_CFG_MSGOUT_UBX_MON_COMMS_UART1, UBX_MON_COMMS, UBX_CLASS_MON, 0, "UBX_MON_COMMS", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_MON_HW2_UART1, UBX_MON_HW2, UBX_CLASS_MON, 0, "UBX_MON_HW2", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_MON_HW3_UART1, UBX_MON_HW3, UBX_CLASS_MON, 0, "UBX_MON_HW3", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_MON_HW_UART1, UBX_MON_HW, UBX_CLASS_MON, 0, "UBX_MON_HW", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_MON_IO_UART1, UBX_MON_IO, UBX_CLASS_MON, 0, "UBX_MON_IO", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_MON_MSGPP_UART1, UBX_MON_MSGPP, UBX_CLASS_MON, 0, "UBX_MON_MSGPP", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_MON_RF_UART1, UBX_MON_RF, UBX_CLASS_MON, 0, "UBX_MON_RF", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_MON_RXBUF_UART1, UBX_MON_RXBUF, UBX_CLASS_MON, 0, "UBX_MON_RXBUF", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_MON_RXR_UART1, UBX_MON_RXR, UBX_CLASS_MON, 0, "UBX_MON_RXR", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_MON_TXBUF_UART1, UBX_MON_TXBUF, UBX_CLASS_MON, 0, "UBX_MON_TXBUF", (PLATFORM_F9P | PLATFORM_F9R)},
//TIM
{UBLOX_CFG_MSGOUT_UBX_TIM_TM2_UART1, UBX_TIM_TM2, UBX_CLASS_TIM, 0, "UBX_TIM_TM2", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_TIM_TP_UART1, UBX_TIM_TP, UBX_CLASS_TIM, 0, "UBX_TIM_TP", (PLATFORM_F9P | PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_TIM_VRFY_UART1, UBX_TIM_VRFY, UBX_CLASS_TIM, 0, "UBX_TIM_VRFY", (PLATFORM_F9P | PLATFORM_F9R)},
//RTCM
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1005_UART1, UBX_RTCM_1005, UBX_RTCM_MSB, 0, "UBX_RTCM_1005", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1074_UART1, UBX_RTCM_1074, UBX_RTCM_MSB, 0, "UBX_RTCM_1074", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1077_UART1, UBX_RTCM_1077, UBX_RTCM_MSB, 0, "UBX_RTCM_1077", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1084_UART1, UBX_RTCM_1084, UBX_RTCM_MSB, 0, "UBX_RTCM_1084", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1087_UART1, UBX_RTCM_1087, UBX_RTCM_MSB, 0, "UBX_RTCM_1087", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1094_UART1, UBX_RTCM_1094, UBX_RTCM_MSB, 0, "UBX_RTCM_1094", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1097_UART1, UBX_RTCM_1097, UBX_RTCM_MSB, 0, "UBX_RTCM_1097", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1124_UART1, UBX_RTCM_1124, UBX_RTCM_MSB, 0, "UBX_RTCM_1124", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1127_UART1, UBX_RTCM_1127, UBX_RTCM_MSB, 0, "UBX_RTCM_1127", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE1230_UART1, UBX_RTCM_1230, UBX_RTCM_MSB, 0, "UBX_RTCM_1230", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_0_UART1, UBX_RTCM_4072_0, UBX_RTCM_MSB, 0, "UBX_RTCM_4072_0", (PLATFORM_F9P)},
{UBLOX_CFG_MSGOUT_RTCM_3X_TYPE4072_1_UART1, UBX_RTCM_4072_1, UBX_RTCM_MSB, 0, "UBX_RTCM_4072_1", (PLATFORM_F9P)},
//ESF
{UBLOX_CFG_MSGOUT_UBX_ESF_MEAS_UART1, UBX_ESF_MEAS, UBX_CLASS_ESF, 0, "UBX_ESF_MEAS", (PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_ESF_RAW_UART1, UBX_ESF_RAW, UBX_CLASS_ESF, 0, "UBX_ESF_RAW", (PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_ESF_STATUS_UART1, UBX_ESF_STATUS, UBX_CLASS_ESF, 0, "UBX_ESF_STATUS", (PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_ESF_ALG_UART1, UBX_ESF_ALG, UBX_CLASS_ESF, 0, "UBX_ESF_ALG", (PLATFORM_F9R)},
{UBLOX_CFG_MSGOUT_UBX_ESF_INS_UART1, UBX_ESF_INS, UBX_CLASS_ESF, 0, "UBX_ESF_INS", (PLATFORM_F9R)},
};
//Constellations monitored/used for fix
ubxConstellation ubxConstellations[MAX_CONSTELLATIONS] =
{
{UBLOX_CFG_SIGNAL_GPS_ENA, SFE_UBLOX_GNSS_ID_GPS, true, "GPS"},
{UBLOX_CFG_SIGNAL_SBAS_ENA, SFE_UBLOX_GNSS_ID_SBAS, true, "SBAS"},
{UBLOX_CFG_SIGNAL_GAL_ENA, SFE_UBLOX_GNSS_ID_GALILEO, true, "Galileo"},
{UBLOX_CFG_SIGNAL_BDS_ENA, SFE_UBLOX_GNSS_ID_BEIDOU, true, "BeiDou"},
//{UBLOX_CFG_SIGNAL_QZSS_ENA, SFE_UBLOX_GNSS_ID_IMES, false, "IMES"}, //Not yet supported? Config key does not exist?
{UBLOX_CFG_SIGNAL_QZSS_ENA, SFE_UBLOX_GNSS_ID_QZSS, true, "QZSS"},
{UBLOX_CFG_SIGNAL_GLO_ENA, SFE_UBLOX_GNSS_ID_GLONASS, true, "GLONASS"},
};
int maxLogLength_minutes = 60 * 24; //Default to 24 hours
char profileName[50] = "";
//NTRIP Server
bool enableNtripServer = false;
bool ntripServer_StartAtSurveyIn = false; //true = Start WiFi instead of Bluetooth at Survey-In
char ntripServer_CasterHost[50] = "rtk2go.com"; //It's free...
uint16_t ntripServer_CasterPort = 2101;
char ntripServer_CasterUser[50] = "test@test.com"; //Some free casters require auth. User must provide their own email address to use RTK2Go
char ntripServer_CasterUserPW[50] = "";
char ntripServer_MountPoint[50] = "bldr_dwntwn2"; //NTRIP Server
char ntripServer_MountPointPW[50] = "WR5wRo4H";
char ntripServer_wifiSSID[50] = "TRex"; //NTRIP Server WiFi
char ntripServer_wifiPW[50] = "parachutes";
//NTRIP Client
bool enableNtripClient = false;
char ntripClient_CasterHost[50] = "rtk2go.com"; //It's free...
uint16_t ntripClient_CasterPort = 2101;
char ntripClient_CasterUser[50] = "test@test.com"; //Some free casters require auth. User must provide their own email address to use RTK2Go
char ntripClient_CasterUserPW[50] = "";
char ntripClient_MountPoint[50] = "bldr_SparkFun1";
char ntripClient_MountPointPW[50] = "";
char ntripClient_wifiSSID[50] = "TRex"; //NTRIP Server WiFi
char ntripClient_wifiPW[50] = "parachutes";
bool ntripClient_TransmitGGA = true;
int16_t serialTimeoutGNSS = 1; //In ms - used during SerialGNSS.begin. Number of ms to pass of no data before hardware serial reports data available.
char pointPerfectDeviceProfileToken[40] = "";
bool enablePointPerfectCorrections = true;
char home_wifiSSID[50] = ""; //WiFi network to use when attempting to obtain PointPerfect keys and ThingStream provisioning
char home_wifiPW[50] = "";
bool autoKeyRenewal = true; //Attempt to get keys if we get under 28 days from the expiration date
char pointPerfectClientID[50] = "";
char pointPerfectBrokerHost[50] = ""; // pp.services.u-blox.com
char pointPerfectLBandTopic[20] = ""; // /pp/key/Lb
char pointPerfectCurrentKey[33] = ""; //32 hexadecimal digits = 128 bits = 16 Bytes
uint64_t pointPerfectCurrentKeyDuration = 0;
uint64_t pointPerfectCurrentKeyStart = 0;
char pointPerfectNextKey[33] = "";
uint64_t pointPerfectNextKeyDuration = 0;
uint64_t pointPerfectNextKeyStart = 0;
uint64_t lastKeyAttempt = 0; //Epoch time of last attempt at obtaining keys
bool updateZEDSettings = true; //When in doubt, update the ZED with current settings
uint32_t LBandFreq = 1556290000; //Default to US band
//Time Zone - Default to UTC
int8_t timeZoneHours = 0;
int8_t timeZoneMinutes = 0;
int8_t timeZoneSeconds = 0;
//Debug settings
bool enablePrintWifiIpAddress = true;
bool enablePrintState = false;
bool enablePrintWifiState = false;
bool enablePrintNtripClientState = false;
bool enablePrintNtripServerState = false;
bool enablePrintPosition = false;
bool enablePrintIdleTime = false;
bool enablePrintBatteryMessages = true;
bool enablePrintRoverAccuracy = true;
bool enablePrintBadMessages = false;
bool enablePrintLogFileMessages = false;
bool enablePrintLogFileStatus = true;
bool enablePrintRingBufferOffsets = false;
bool enablePrintNtripServerRtcm = false;
bool enablePrintNtripClientRtcm = false;
bool enablePrintStates = true;
bool enablePrintDuplicateStates = false;
RadioType_e radioType = RADIO_EXTERNAL;
uint8_t espnowPeers[5][6]; //Max of 5 peers. Contains the MAC addresses (6 bytes) of paired units
uint8_t espnowPeerCount;
bool enableRtcmMessageChecking = false;
BluetoothRadioType_e bluetoothRadioType = BLUETOOTH_RADIO_SPP;
bool runLogTest = false; //When set to true, device will create a series of test logs
} Settings;
Settings settings;
struct struct_online {
bool microSD = false;
bool display = false;
bool gnss = false;
bool logging = false;
bool serialOutput = false;
bool fs = false;
bool rtc = false;
bool battery = false;
bool accelerometer = false;
bool ntripClient = false;
bool ntripServer = false;
bool lband = false;
bool lbandCorrections = false;
bool i2c = false;
} online;
//Radio status LED goes from off (LED off), no connection (blinking), to connected (solid)
enum BTState
{
BT_OFF = 0,
BT_NOTCONNECTED,
BT_CONNECTED,
};

11
test/README Normal file
View File

@ -0,0 +1,11 @@
This directory is intended for PlatformIO Test Runner and project tests.
Unit Testing is a software testing method by which individual units of
source code, sets of one or more MCU program modules together with associated
control data, usage procedures, and operating procedures, are tested to
determine whether they are fit for use. Unit testing finds problems early
in the development cycle.
More information about PlatformIO Unit Testing:
- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html