Copy from old project - Initial state
This commit is contained in:
parent
9fe916216d
commit
a6970612ce
10
.vscode/extensions.json
vendored
Normal file
10
.vscode/extensions.json
vendored
Normal 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
13
.vscode/settings.json
vendored
Normal 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
232
compile_commands.json
Normal 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
39
include/README
Normal 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
46
lib/README
Normal 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
22
platformio.ini
Normal 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
2940
src/main.cpp
Normal file
File diff suppressed because it is too large
Load Diff
76
src/mybluetooth.h
Normal file
76
src/mybluetooth.h
Normal 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
428
src/settings.h
Normal 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
11
test/README
Normal 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
|
||||
Loading…
Reference in New Issue
Block a user