Commit c05d31ce 刘韬

1

0 个父辈
{
"configuration": "CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,PSRAM=disabled,PartitionScheme=default,CPUFreq=240,FlashMode=qio,FlashFreq=80,FlashSize=4M,UploadSpeed=921600,DebugLevel=none",
"board": "esp32:esp32:esp32s2",
"sketch": "smart_shell_esp32.ino",
"port": "COM8",
"output": "D:\\rick\\ardoino\\build"
}
\ No newline at end of file
{
"version": 4,
"configurations": [
{
"name": "Arduino",
"compilerPath": "C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32s2-elf-gcc\\gcc8_4_0-esp-2021r1\\bin\\xtensa-esp32s2-elf-g++",
"compilerArgs": [
"-mlongcalls",
"-ffunction-sections",
"-fdata-sections",
"-Wno-error=unused-function",
"-Wno-error=unused-variable",
"-Wno-error=deprecated-declarations",
"-Wno-unused-parameter",
"-Wno-sign-compare",
"-Wwrite-strings",
"-fstack-protector",
"-fstrict-volatile-bitfields",
"-Wno-error=unused-but-set-variable",
"-fno-jump-tables",
"-fno-tree-switch-conversion",
"-std=gnu++11",
"-fexceptions",
"-fno-rtti"
],
"intelliSenseMode": "gcc-x64",
"includePath": [
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\config",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\newlib\\platform_include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\freertos\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\freertos\\port\\xtensa\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_hw_support\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_hw_support\\include\\soc",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_hw_support\\include\\soc\\esp32s2",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_hw_support\\port\\esp32s2",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_hw_support\\port\\esp32s2\\private_include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\heap\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\log\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\lwip\\include\\apps",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\lwip\\include\\apps\\sntp",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\lwip\\lwip\\src\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\lwip\\port\\esp32\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\lwip\\port\\esp32\\include\\arch",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\soc\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\soc\\esp32s2",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\soc\\esp32s2\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\hal\\esp32s2\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\hal\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\hal\\platform_port\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_rom\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_rom\\esp32s2",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_rom\\include\\esp32s2",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_common\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_system\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_system\\port\\soc",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_system\\port\\public_compat",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\xtensa\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\xtensa\\esp32s2\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\driver\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\driver\\esp32s2\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_pm\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_ringbuf\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\efuse\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\efuse\\esp32s2\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\vfs\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_wifi\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_event\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_netif\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_eth\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\tcpip_adapter\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_phy\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_phy\\esp32s2\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\app_trace\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_timer\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_ipc\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\mbedtls\\port\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\mbedtls\\mbedtls\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\mbedtls\\esp_crt_bundle\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\app_update\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\spi_flash\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\bootloader_support\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\nvs_flash\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\pthread\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_gdbstub\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_gdbstub\\xtensa",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_gdbstub\\esp32s2",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\espcoredump\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\espcoredump\\include\\port\\xtensa",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\wpa_supplicant\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\wpa_supplicant\\port\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\wpa_supplicant\\include\\esp_supplicant",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\ieee802154\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\asio\\asio\\asio\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\asio\\port\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\cbor\\port\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\unity\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\unity\\unity\\src",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\cmock\\CMock\\src",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\coap\\port\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\coap\\port\\include\\coap",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\coap\\libcoap\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\coap\\libcoap\\include\\coap2",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\console",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\nghttp\\port\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\nghttp\\nghttp2\\lib\\includes",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-tls",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-tls\\esp-tls-crypto",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_adc_cal\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_hid\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\tcp_transport\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_http_client\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_http_server\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_https_ota\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_https_server\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_lcd\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_lcd\\interface",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\protobuf-c\\protobuf-c",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\protocomm\\include\\common",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\protocomm\\include\\security",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\protocomm\\include\\transports",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\mdns\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_local_ctrl\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\sdmmc\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_serial_slave_link\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_websocket_client\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\expat\\expat\\expat\\lib",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\expat\\port\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\wear_levelling\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\fatfs\\diskio",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\fatfs\\vfs",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\fatfs\\src",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\freemodbus\\common\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\idf_test\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\idf_test\\include\\esp32s2",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\jsmn\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\json\\cJSON",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\libsodium\\libsodium\\src\\libsodium\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\libsodium\\port_include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\mqtt\\esp-mqtt\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\openssl\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\perfmon\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\spiffs\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\touch_element\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\ulp\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\wifi_provisioning\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\freertos\\include\\freertos",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\arduino_tinyusb\\tinyusb\\src",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\arduino_tinyusb\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_littlefs\\src",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp_littlefs\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\dotprod\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\support\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\windows\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\windows\\hann\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\windows\\blackman\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\windows\\blackman_harris\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\windows\\blackman_nuttall\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\windows\\nuttall\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\windows\\flat_top\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\iir\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\fir\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\math\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\math\\add\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\math\\sub\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\math\\mul\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\math\\addc\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\math\\mulc\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\math\\sqrt\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\matrix\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\fft\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\dct\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\conv\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-dsp\\modules\\common\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-face\\face_detection\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-face\\face_recognition\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-face\\object_detection\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-face\\image_util\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-face\\pose_estimation\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp-face\\lib\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp32-camera\\driver\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\esp32-camera\\conversions\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\fb_gfx\\include",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\cores\\esp32",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\variants\\esp32s2",
"C:\\Users\\刘韬\\Documents\\Arduino\\libraries\\ArduinoJson\\src",
"C:\\Users\\刘韬\\Documents\\Arduino\\libraries\\ArduinoUniqueID\\src",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\libraries\\EEPROM\\src",
"C:\\Users\\刘韬\\Documents\\Arduino\\libraries\\Streaming\\src",
"C:\\Users\\刘韬\\Documents\\Arduino\\libraries\\Adafruit_NeoPixel"
],
"browse": {
"path": [
"${workspaceFolder}",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\tools\\sdk\\esp32s2\\include\\**",
"C:\\Users\\刘韬\\Documents\\Arduino\\libraries\\**",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\libraries\\**",
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\cores\\**"
]
},
"forcedInclude": [
"C:\\Users\\刘韬\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.0\\cores\\esp32\\Arduino.h"
],
"cStandard": "c11",
"cppStandard": "c++11",
"defines": [
"HAVE_CONFIG_H",
"MBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"",
"UNITY_INCLUDE_CONFIG_H",
"WITH_POSIX",
"_GNU_SOURCE",
"IDF_VER=\"v4.4-dev-2313-gc69f0ec32\"",
"ESP_PLATFORM",
"F_CPU=240000000L",
"ARDUINO=10819",
"ARDUINO_ESP32S2_DEV",
"ARDUINO_ARCH_ESP32",
"ARDUINO_BOARD=\"ESP32S2_DEV\"",
"ARDUINO_VARIANT=\"esp32s2\"",
"ESP32",
"CORE_DEBUG_LEVEL=0",
"ARDUINO_USB_CDC_ON_BOOT=0",
"ARDUINO_USB_MSC_ON_BOOT=0",
"ARDUINO_USB_DFU_ON_BOOT=0",
"__DBL_MIN_EXP__=(-1021)",
"__FLT32X_MAX_EXP__=1024",
"__cpp_attributes=200809",
"__UINT_LEAST16_MAX__=0xffff",
"__ATOMIC_ACQUIRE=2",
"__FLT_MIN__=1.1754943508222875e-38F",
"__GCC_IEC_559_COMPLEX=0",
"__cpp_aggregate_nsdmi=201304",
"__UINT_LEAST8_TYPE__=unsigned char",
"__INTMAX_C(c)=c ## LL",
"__CHAR_BIT__=8",
"__UINT8_MAX__=0xff",
"__WINT_MAX__=0xffffffffU",
"__FLT32_MIN_EXP__=(-125)",
"__cpp_static_assert=200410",
"__ORDER_LITTLE_ENDIAN__=1234",
"__SIZE_MAX__=0xffffffffU",
"__WCHAR_MAX__=0xffff",
"__DBL_DENORM_MIN__=double(4.9406564584124654e-324L)",
"__GCC_ATOMIC_CHAR_LOCK_FREE=1",
"__GCC_IEC_559=0",
"__FLT32X_DECIMAL_DIG__=17",
"__FLT_EVAL_METHOD__=0",
"__cpp_binary_literals=201304",
"__FLT64_DECIMAL_DIG__=17",
"__GCC_ATOMIC_CHAR32_T_LOCK_FREE=1",
"__cpp_variadic_templates=200704",
"__UINT_FAST64_MAX__=0xffffffffffffffffULL",
"__SIG_ATOMIC_TYPE__=int",
"__DBL_MIN_10_EXP__=(-307)",
"__FINITE_MATH_ONLY__=0",
"__cpp_variable_templates=201304",
"__GNUC_PATCHLEVEL__=0",
"__FLT32_HAS_DENORM__=1",
"__UINT_FAST8_MAX__=0xffffffffU",
"__has_include(STR)=__has_include__(STR)",
"__DEC64_MAX_EXP__=385",
"__INT8_C(c)=c",
"__INT_LEAST8_WIDTH__=8",
"__UINT_LEAST64_MAX__=0xffffffffffffffffULL",
"__SHRT_MAX__=0x7fff",
"__LDBL_MAX__=1.7976931348623157e+308L",
"__UINT_LEAST8_MAX__=0xff",
"__GCC_ATOMIC_BOOL_LOCK_FREE=1",
"__UINTMAX_TYPE__=long long unsigned int",
"__DEC32_EPSILON__=1E-6DF",
"__FLT_EVAL_METHOD_TS_18661_3__=0",
"__CHAR_UNSIGNED__=1",
"__UINT32_MAX__=0xffffffffU",
"__GXX_EXPERIMENTAL_CXX0X__=1",
"__LDBL_MAX_EXP__=1024",
"__WINT_MIN__=0U",
"__INT_LEAST16_WIDTH__=16",
"__SCHAR_MAX__=0x7f",
"__WCHAR_MIN__=0",
"__INT64_C(c)=c ## LL",
"__DBL_DIG__=15",
"__GCC_ATOMIC_POINTER_LOCK_FREE=1",
"__SIZEOF_INT__=4",
"__SIZEOF_POINTER__=4",
"__GCC_ATOMIC_CHAR16_T_LOCK_FREE=1",
"__USER_LABEL_PREFIX__",
"__STDC_HOSTED__=1",
"__LDBL_HAS_INFINITY__=1",
"__XTENSA_EL__=1",
"__FLT32_DIG__=6",
"__FLT_EPSILON__=1.1920928955078125e-7F",
"__GXX_WEAK__=1",
"__SHRT_WIDTH__=16",
"__LDBL_MIN__=2.2250738585072014e-308L",
"__DEC32_MAX__=9.999999E96DF",
"__cpp_threadsafe_static_init=200806",
"__FLT32X_HAS_INFINITY__=1",
"__INT32_MAX__=0x7fffffff",
"__INT_WIDTH__=32",
"__SIZEOF_LONG__=4",
"__UINT16_C(c)=c",
"__PTRDIFF_WIDTH__=32",
"__DECIMAL_DIG__=17",
"__FLT64_EPSILON__=2.2204460492503131e-16F64",
"__INTMAX_WIDTH__=64",
"__FLT64_MIN_EXP__=(-1021)",
"__has_include_next(STR)=__has_include_next__(STR)",
"__LDBL_HAS_QUIET_NAN__=1",
"__FLT64_MANT_DIG__=53",
"__GNUC__=8",
"__GXX_RTTI=1",
"__cpp_delegating_constructors=200604",
"__FLT_HAS_DENORM__=1",
"__SIZEOF_LONG_DOUBLE__=8",
"__BIGGEST_ALIGNMENT__=16",
"__STDC_UTF_16__=1",
"__FLT64_MAX_10_EXP__=308",
"__FLT32_HAS_INFINITY__=1",
"__DBL_MAX__=double(1.7976931348623157e+308L)",
"__cpp_raw_strings=200710",
"__INT_FAST32_MAX__=0x7fffffff",
"__DBL_HAS_INFINITY__=1",
"__DEC32_MIN_EXP__=(-94)",
"__INTPTR_WIDTH__=32",
"__FLT32X_HAS_DENORM__=1",
"__INT_FAST16_TYPE__=int",
"__LDBL_HAS_DENORM__=1",
"__cplusplus=201402L",
"__cpp_ref_qualifiers=200710",
"__DEC128_MAX__=9.999999999999999999999999999999999E6144DL",
"__INT_LEAST32_MAX__=0x7fffffff",
"__DEC32_MIN__=1E-95DF",
"__DEPRECATED=1",
"__cpp_rvalue_references=200610",
"__DBL_MAX_EXP__=1024",
"__WCHAR_WIDTH__=16",
"__FLT32_MAX__=3.4028234663852886e+38F32",
"__DEC128_EPSILON__=1E-33DL",
"__PTRDIFF_MAX__=0x7fffffff",
"__FLT32_HAS_QUIET_NAN__=1",
"__GNUG__=8",
"__LONG_LONG_MAX__=0x7fffffffffffffffLL",
"__SIZEOF_SIZE_T__=4",
"__cpp_rvalue_reference=200610",
"__cpp_nsdmi=200809",
"__SIZEOF_WINT_T__=4",
"__LONG_LONG_WIDTH__=64",
"__cpp_initializer_lists=200806",
"__FLT32_MAX_EXP__=128",
"__cpp_hex_float=201603",
"__GXX_ABI_VERSION=1013",
"__FLT_MIN_EXP__=(-125)",
"__cpp_lambdas=200907",
"__INT_FAST64_TYPE__=long long int",
"__FLT64_DENORM_MIN__=4.9406564584124654e-324F64",
"__DBL_MIN__=double(2.2250738585072014e-308L)",
"__FLT32X_EPSILON__=2.2204460492503131e-16F32x",
"__FLT64_MIN_10_EXP__=(-307)",
"__DEC128_MIN__=1E-6143DL",
"__REGISTER_PREFIX__",
"__UINT16_MAX__=0xffff",
"__DBL_HAS_DENORM__=1",
"__FLT32_MIN__=1.1754943508222875e-38F32",
"__UINT8_TYPE__=unsigned char",
"__NO_INLINE__=1",
"__FLT_MANT_DIG__=24",
"__LDBL_DECIMAL_DIG__=17",
"__VERSION__=\"8.4.0\"",
"__UINT64_C(c)=c ## ULL",
"__cpp_unicode_characters=200704",
"__cpp_decltype_auto=201304",
"__XTENSA_SOFT_FLOAT__=1",
"__GCC_ATOMIC_INT_LOCK_FREE=1",
"__FLT32_MANT_DIG__=24",
"__FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__",
"__SCHAR_WIDTH__=8",
"__INT32_C(c)=c",
"__DEC64_EPSILON__=1E-15DD",
"__ORDER_PDP_ENDIAN__=3412",
"__DEC128_MIN_EXP__=(-6142)",
"__FLT32_MAX_10_EXP__=38",
"__INT_FAST32_TYPE__=int",
"__UINT_LEAST16_TYPE__=short unsigned int",
"__INT16_MAX__=0x7fff",
"__cpp_rtti=199711",
"__SIZE_TYPE__=unsigned int",
"__UINT64_MAX__=0xffffffffffffffffULL",
"__INT8_TYPE__=signed char",
"__cpp_digit_separators=201309",
"__ELF__=1",
"__xtensa__=1",
"__FLT_RADIX__=2",
"__INT_LEAST16_TYPE__=short int",
"__LDBL_EPSILON__=2.2204460492503131e-16L",
"__UINTMAX_C(c)=c ## ULL",
"__SIG_ATOMIC_MAX__=0x7fffffff",
"__GCC_ATOMIC_WCHAR_T_LOCK_FREE=1",
"__SIZEOF_PTRDIFF_T__=4",
"__FLT32X_MANT_DIG__=53",
"__FLT32X_MIN_EXP__=(-1021)",
"__DEC32_SUBNORMAL_MIN__=0.000001E-95DF",
"__INT_FAST16_MAX__=0x7fffffff",
"__FLT64_DIG__=15",
"__UINT_FAST32_MAX__=0xffffffffU",
"__UINT_LEAST64_TYPE__=long long unsigned int",
"__FLT_HAS_QUIET_NAN__=1",
"__FLT_MAX_10_EXP__=38",
"__LONG_MAX__=0x7fffffffL",
"__DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL",
"__FLT_HAS_INFINITY__=1",
"__cpp_unicode_literals=200710",
"__UINT_FAST16_TYPE__=unsigned int",
"__DEC64_MAX__=9.999999999999999E384DD",
"__INT_FAST32_WIDTH__=32",
"__CHAR16_TYPE__=short unsigned int",
"__PRAGMA_REDEFINE_EXTNAME=1",
"__SIZE_WIDTH__=32",
"__INT_LEAST16_MAX__=0x7fff",
"__DEC64_MANT_DIG__=16",
"__INT64_MAX__=0x7fffffffffffffffLL",
"__UINT_LEAST32_MAX__=0xffffffffU",
"__FLT32_DENORM_MIN__=1.4012984643248171e-45F32",
"__GCC_ATOMIC_LONG_LOCK_FREE=1",
"__SIG_ATOMIC_WIDTH__=32",
"__INT_LEAST64_TYPE__=long long int",
"__INT16_TYPE__=short int",
"__INT_LEAST8_TYPE__=signed char",
"__DEC32_MAX_EXP__=97",
"__INT_FAST8_MAX__=0x7fffffff",
"__INTPTR_MAX__=0x7fffffff",
"__cpp_sized_deallocation=201309",
"__cpp_range_based_for=200907",
"__FLT64_HAS_QUIET_NAN__=1",
"__FLT32_MIN_10_EXP__=(-37)",
"__EXCEPTIONS=1",
"__LDBL_MANT_DIG__=53",
"__DBL_HAS_QUIET_NAN__=1",
"__FLT64_HAS_INFINITY__=1",
"__SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)",
"__cpp_return_type_deduction=201304",
"__INTPTR_TYPE__=int",
"__UINT16_TYPE__=short unsigned int",
"__WCHAR_TYPE__=short unsigned int",
"__SIZEOF_FLOAT__=4",
"__UINTPTR_MAX__=0xffffffffU",
"__INT_FAST64_WIDTH__=64",
"__DEC64_MIN_EXP__=(-382)",
"__cpp_decltype=200707",
"__FLT32_DECIMAL_DIG__=9",
"__INT_FAST64_MAX__=0x7fffffffffffffffLL",
"__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1",
"__FLT_DIG__=6",
"__UINT_FAST64_TYPE__=long long unsigned int",
"__INT_MAX__=0x7fffffff",
"__INT64_TYPE__=long long int",
"__FLT_MAX_EXP__=128",
"__DBL_MANT_DIG__=53",
"__cpp_inheriting_constructors=201511",
"__INT_LEAST64_MAX__=0x7fffffffffffffffLL",
"__DEC64_MIN__=1E-383DD",
"__WINT_TYPE__=unsigned int",
"__UINT_LEAST32_TYPE__=unsigned int",
"__SIZEOF_SHORT__=2",
"__LDBL_MIN_EXP__=(-1021)",
"__FLT64_MAX__=1.7976931348623157e+308F64",
"__WINT_WIDTH__=32",
"__INT_LEAST8_MAX__=0x7f",
"__FLT32X_MAX_10_EXP__=308",
"__WCHAR_UNSIGNED__=1",
"__LDBL_MAX_10_EXP__=308",
"__ATOMIC_RELAXED=0",
"__DBL_EPSILON__=double(2.2204460492503131e-16L)",
"__XTENSA_WINDOWED_ABI__=1",
"__UINT8_C(c)=c",
"__FLT64_MAX_EXP__=1024",
"__INT_LEAST32_TYPE__=int",
"__SIZEOF_WCHAR_T__=2",
"__INT_FAST8_TYPE__=int",
"__GNUC_STDC_INLINE__=1",
"__FLT64_HAS_DENORM__=1",
"__FLT32_EPSILON__=1.1920928955078125e-7F32",
"__DBL_DECIMAL_DIG__=17",
"__STDC_UTF_32__=1",
"__INT_FAST8_WIDTH__=32",
"__DEC_EVAL_METHOD__=2",
"__FLT32X_MAX__=1.7976931348623157e+308F32x",
"__XTENSA__=1",
"__ORDER_BIG_ENDIAN__=4321",
"__cpp_runtime_arrays=198712",
"__UINT64_TYPE__=long long unsigned int",
"__UINT32_C(c)=c ## U",
"__INTMAX_MAX__=0x7fffffffffffffffLL",
"__cpp_alias_templates=200704",
"__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__",
"__FLT_DENORM_MIN__=1.4012984643248171e-45F",
"__INT8_MAX__=0x7f",
"__LONG_WIDTH__=32",
"__UINT_FAST32_TYPE__=unsigned int",
"__CHAR32_TYPE__=unsigned int",
"__FLT_MAX__=3.4028234663852886e+38F",
"__cpp_constexpr=201304",
"__INT32_TYPE__=int",
"__SIZEOF_DOUBLE__=8",
"__cpp_exceptions=199711",
"__FLT_MIN_10_EXP__=(-37)",
"__FLT64_MIN__=2.2250738585072014e-308F64",
"__INT_LEAST32_WIDTH__=32",
"__INTMAX_TYPE__=long long int",
"__DEC128_MAX_EXP__=6145",
"__FLT32X_HAS_QUIET_NAN__=1",
"__ATOMIC_CONSUME=1",
"__GNUC_MINOR__=4",
"__INT_FAST16_WIDTH__=32",
"__UINTMAX_MAX__=0xffffffffffffffffULL",
"__DEC32_MANT_DIG__=7",
"__FLT32X_DENORM_MIN__=4.9406564584124654e-324F32x",
"__DBL_MAX_10_EXP__=308",
"__LDBL_DENORM_MIN__=4.9406564584124654e-324L",
"__INT16_C(c)=c",
"__cpp_generic_lambdas=201304",
"__STDC__=1",
"__FLT32X_DIG__=15",
"__PTRDIFF_TYPE__=int",
"__ATOMIC_SEQ_CST=5",
"__UINT32_TYPE__=unsigned int",
"__FLT32X_MIN_10_EXP__=(-307)",
"__UINTPTR_TYPE__=unsigned int",
"__DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD",
"__DEC128_MANT_DIG__=34",
"__LDBL_MIN_10_EXP__=(-307)",
"__SIZEOF_LONG_LONG__=8",
"__cpp_user_defined_literals=200809",
"__GCC_ATOMIC_LLONG_LOCK_FREE=1",
"__FLT32X_MIN__=2.2250738585072014e-308F32x",
"__LDBL_DIG__=15",
"__FLT_DECIMAL_DIG__=9",
"__UINT_FAST16_MAX__=0xffffffffU",
"__GCC_ATOMIC_SHORT_LOCK_FREE=1",
"__INT_LEAST64_WIDTH__=64",
"__UINT_FAST8_TYPE__=unsigned int",
"__cpp_init_captures=201304",
"__ATOMIC_ACQ_REL=4",
"__ATOMIC_RELEASE=3",
"USBCON"
]
}
]
}
\ No newline at end of file
#pragma once
//#define diagnosMode true
#define _16MM true
//#define _25MM true
//#define _54MM true
#define ColorsetAddress 1000
#define ADDREPAddress 3002
//3010~3020
#define LedTypeEPAddress 3010
#define RowWidthAddress 3020
#define FactoryModeAddress 3050
//3100~3200
#define SensorCheckAddress 3100
#define BoardIsOK 3300
//3400~3500
#define ShelfPartAddress 3400
\ No newline at end of file
#include "matrixSelector.h"
#include "config.h"
#include <arduino.h>
#include <Streaming.h>
#include <EEPROM.h>
matrixSelector::matrixSelector(int _threshold)
{
// Serial.begin(115200);
// threshold = 60;
}
void matrixSelector::initial()
{
for (int i = 0; i < 10; i++)
{
pinMode(select_pin[i], OUTPUT);
}
pinMode(35, OUTPUT);
pinMode(34, OUTPUT);
// digitalWrite(35 , HIGH );
// digitalWrite(34 , HIGH );
EEPROM.begin(4000);
// EEPROM.setMaxAllowedWrites(maxAllowedWrites);
// start reading from position memBase (address 0) of the EEPROM. Set maximumSize to EEPROMSizeUno
// Writes before membase or beyond EEPROMSizeUno will only give errors when _EEPROMEX_DEBUG is set
// EEPROM.setMemPool(memBase, EEPROMSizeMega);
// addressInt = EEPROM.getAddress(sizeof(int));
// Serial.println(addressInt);
//
int x = readIntFromEEPROM(3000);
if (x > 0)
threshold = x;
else
threshold = 20;
Serial.println("matrix scanner starts ");
// Serial.print (threshold);
}
long matrixSelector::getadc(int pin, boolean txEn = true)
{
pin--;
int a, b;
a = (pin / 10);
b = (pin % 10);
if (txEn)
{
if (b % 2 == 1)
{
digitalWrite(35, LOW);
digitalWrite(34, HIGH);
}
else
{
digitalWrite(35, HIGH);
digitalWrite(34, LOW);
}
}
for (int i = 0; i < 10; i++)
{
// delay(1);
if (i == a)//||i-1==a)
{
pinMode(select_pin[i], OUTPUT);
digitalWrite(select_pin[i], HIGH); // Serial.print("h");Serial.print(select_pin[i]);
#ifdef _25MM
delay(5);
#endif
#ifdef _54MM
delay(10);
#endif
//if (ledcount<40)
//
delayMicroseconds(40*1000/ledcount);
//if(pin==20 || pin==40)
// delay(5);
//delay(10-ledcount/10);
// if (sendelay>0) delay(sendelay);
}
else
{
pinMode(select_pin[i], OUTPUT);
digitalWrite(select_pin[i], LOW); // Serial.print("L");Serial.print(select_pin[i]);
}
}
// Serial.println(" ");
long results = 0;
for (int j = 0; j < 10; j++)
{
results += analogRead(sense_pin[b]);
// delayMicroseconds(100);
}
results = results / 10;
digitalWrite(35, LOW);
digitalWrite(34, LOW);
//if (results == 0 && txEn)
// results = 9999;
return results;
}
bool matrixSelector::getstatus(int pin)
{
float max = getmax(pin);
float min = getmin(pin);
float sample = getadc(pin);
float result = ((max - sample) / (max - min)) * 100;
if (max <100)
result = 0;
if (diagnosMode)
Serial << "\r\npin:" << pin << " max:" << max << " min: " << min << " sample : " << sample << " sen% : " << result << "";
if (factoryMode && sample<2)
return false;
if (result > getthreshold(pin))
return true;
else
return false;
}
void matrixSelector::calibrate(int pin, int mode)
{
// mode 1 is max
// mode -1 is min
long sample = 0;
int maxadr = addressInt + (pin * 2);
int minadr = addressInt + (pin * 2) + 300;
// while (!EEPROM.isReady()){}
if (mode == 1)
{
sample = getadc(pin, true);
// if (sample<9999)
writeIntIntoEEPROM(maxadr, sample, true);
}
if (mode == -1)
{
sample = getadc(pin, false);
//if (sample < 9999)
writeIntIntoEEPROM(minadr, sample, true);
}
}
int matrixSelector::getmax(int pin)
{
int adr = addressInt + (pin * 2);
// while (!EEPROM.isReady()){}
int max = readIntFromEEPROM(adr);
return max;
}
int matrixSelector::getmin(int pin)
{
int adr = addressInt + (pin * 2) + 300;
// while (!EEPROM.isReady()){}
int min = readIntFromEEPROM(adr);
return min;
}
int matrixSelector::getthreshold(int pin)
{
int adr = addressInt + (pin * 2) + 600;
int threshold = readIntFromEEPROM(adr);
if (threshold == 0 || threshold > 100)
threshold = 20;
return threshold;
}
void matrixSelector::setcalnum(HardwareSerial *sl, int startpin, int endpin, int max, int min, int threshold)
{
// 0 mean no change
for (int pin = startpin; pin <= endpin; pin++)
{
int maxadr = addressInt + (pin * 2);
int minadr = addressInt + (pin * 2) + 300;
int thresholdadr = addressInt + (pin * 2) + 600;
// while (!EEPROM.isReady()){}
sl->println(pin);
if (max > 0)
writeIntIntoEEPROM(maxadr, max, true);
if (min > 0)
writeIntIntoEEPROM(minadr, min, true);
if (threshold > 0)
writeIntIntoEEPROM(thresholdadr, threshold, true);
}
EEPROMcommit();
}
void matrixSelector::getcalnum(HardwareSerial *sl, int startpin, int endpin, int max, int min, int threshold)
{
// 0 mean no change
for (int pin = startpin; pin <= endpin; pin++)
{
int maxadr = addressInt + (pin * 2);
int minadr = addressInt + (pin * 2) + 300;
int thresholdadr = addressInt + (pin * 2) + 600;
sl->print("(");
sl->print(pin);
sl->print(",");
sl->print(readIntFromEEPROM(maxadr));
sl->print(",");
sl->print(readIntFromEEPROM(minadr));
sl->print(",");
sl->print(readIntFromEEPROM(thresholdadr));
sl->print(",");
sl->print(getadc(pin));
sl->print(") ");
}
}
void matrixSelector::writeIntIntoEEPROM(int address, int number, bool nocommit)
{
EEPROM.write(address, number >> 8);
EEPROM.write(address + 1, number & 0xFF);
if (!nocommit)
EEPROM.commit();
}
void matrixSelector::writeShortIntoEEPROM(int address, short number, bool nocommit)
{
EEPROM.write(address, number);
if (!nocommit)
EEPROM.commit();
}
void matrixSelector::writeIntIntoEEPROM(int address, int number)
{
writeIntIntoEEPROM(address, number, false);
}
void matrixSelector::writeShortIntoEEPROM(int address, short number)
{
writeShortIntoEEPROM(address, number, false);
}
void matrixSelector::EEPROMcommit()
{
EEPROM.commit();
}
int matrixSelector::readIntFromEEPROM(int address)
{
return (EEPROM.read(address) << 8) + EEPROM.read(address + 1);
}
short matrixSelector::readShortFromEEPROM(int address)
{
return EEPROM.read(address);
}
#ifndef _matrixSelector_h_
#define _matrixSelector_h_
#include "config.h"
#include <arduino.h>
//#include <EEPROMex.h>
#include <EEPROM.h>
class matrixSelector {
public:
matrixSelector(int _threshold );
// ~matrixSelector();
void initial();
long getadc(int pin , boolean txEn);
bool getstatus(int pin);
void calibrate(int pin,int mode);
void setcalnum(HardwareSerial *sl,int startpin,int endpin,int max,int min , int threshold );
void getcalnum(HardwareSerial *sl,int startpin,int endpin,int max,int min , int threshold );
int getmax(int pin);
int getmin(int pin);
int getthreshold(int pin);
int readIntFromEEPROM(int address);
short readShortFromEEPROM(int address);
void writeIntIntoEEPROM(int address, int number,bool nocommit);
void writeShortIntoEEPROM(int address, short number,bool nocommit);
void writeIntIntoEEPROM(int address, int number);
void writeShortIntoEEPROM(int address, short number);
void EEPROMcommit();
int sendelay=0;
int ledcount=100;
bool diagnosMode=false;
bool factoryMode=false;
//char *internalBuffer;
//uint16_t internalBufferSize = 0;
private:
int select_pin[10] = { 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 };
int sense_pin[10] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 };
int threshold;
const int maxAllowedWrites = 1000;
const int memBase = 200;
int addressInt ;
};
#endif
/*
jason example 60 // calibraton order
{"ADDR":"1","led":[5],"RGB":[100,100,100]}
{"scan":"true","led":[5],"RGB":[100,100,100]}
{"ADDR":"1","led":[5,10,11],"RGB":[128,200,50]}
{"ADDR":"1","led":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"RGB":[100,255,50]}
{"scan":"true","ADDR":"1","led":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"RGB":[0,0,0]}
{"ADDR":"99","setcalibrate":[1,100,600,150],"threshold":65}
{"ADDR":"99","setcalibrate":[1,100,600,150],"threshold":45}
*/
#define ver 2.12
#include "config.h"
#include <ArduinoJson.h>
#include <ArduinoUniqueID.h>
#include "matrixSelector.h"
#include <Streaming.h>
#define RXD2 26
#define TXD2 21
#include <HardwareSerial.h>
#include <EEPROM.h>
#include <Adafruit_NeoPixel.h>
#define PIN 36
#define NUMPIXELS 100
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800);
//#define DELAYVAL 5
#define maincontrol Serial1
// For led chips like WS2812, which have a data line, ground, and power
// Define the array of leds
// CRGB leds[NUM_LEDS];
String DeviceUniqueID = "";
String ShelfPartName = "";
int ADDR = 1; //此处修改地址
bool status[101]; // {1,1,1,1,1,1,1,0,1,0,0,0,1,0,1,1,1,0,1,0,1,0,1,1,1,0,1,1,0,0,0,0,1,1,0,1,0,1,0,0,1,0,1,0,0}; // status of 100 sensores
String inputString = "";
String inputString2 = "";
String commandString = "";
bool diagnosMode = false;
char json[320];
matrixSelector senScan(30);
short RowWidth = 0;
#ifdef _16MM
int ss[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100};
#endif
#ifdef _25MM
int ss[] = {0, 1, 2, 3, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16, 17, 21, 22, 23, 24, 25, 26, 27, 31, 32, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 51, 52, 53, 54, 55, 56, 61, 62, 63, 64, 65, 66, 67, 71, 72, 73, 74, 75, 76, 81, 82, 83, 84, 85, 86, 87, 91, 92, 93, 94, 95, 96};
// 7,7,7,6,7,6,7,6,7,6
#endif
#ifdef _54MM
int ss[] = {0, 1, 2, 3, 4, 5, 21, 22, 23, 24, 25, 26, 27, 41, 42, 43, 44, 45, 46, 47, 61, 62, 63, 64, 65, 66, 67, 81, 82, 83, 84, 85, 86, 87};
// 5,7,7,7,7
#endif
const int LedType_16MM = 1;
int LedNum_16MM_1[] = {10, 10};
int LedNum_16MM_2[] = {10, 10};
const int LedType_25MM = 2;
int LedNum_25MM_1[] = {7, 7};
int LedNum_25MM_2[] = {7, 6};
const int LedType_35MM = 3;
int LedNum_35MM_1[] = {10, 0};
int LedNum_35MM_2[] = {10, 0};
const int LedType_45MM = 4;
int LedNum_45MM_1[] = {8, 0};
int LedNum_45MM_2[] = {8, 0};
const int LedType_54MM = 5;
int LedNum_54MM_1[] = {5, 0};
int LedNum_54MM_2[] = {7, 0};
long startms;
int sscount = 1;
void setup()
{
for (int i = 0; i < 101; i++)
ss[i] = 0;
maincontrol.begin(115200, SERIAL_8N1, RXD2, TXD2);
// Initialize serial port
Serial.begin(115200);
Serial.println("start up");
pixels.begin();
for (size_t i = 0; i < UniqueIDsize; i++)
DeviceUniqueID += String(UniqueID[i], HEX);
senScan.initial();
ShelfPartName = EEPROM.readString(ShelfPartAddress);
RowWidth = senScan.readShortFromEEPROM(RowWidthAddress);
Serial.println("DeviceUniqueID=" + DeviceUniqueID);
Serial.println("ShelfPartName=" + ShelfPartName);
Serial.println("RowWidth=" + RowWidth);
int addrt = senScan.readIntFromEEPROM(ADDREPAddress);
if (addrt > 0 && addrt < 50)
ADDR = addrt;
else
{
for (int j = 1; j <= 100; j++) // 没有设置过站号, 所有灯全亮
LED(j, 30, 0, 0);
pixels.show();
return;
}
Serial.println("_ADDR=" + String(ADDR));
SetupLed(&Serial);
// for (int ii = 1; ii <= sscount; ii++){
// LED(ii, 10, 10, 10);
// }
short cp = CheckList(&Serial);
short fm = senScan.readShortFromEEPROM(FactoryModeAddress);
// Serial.println(fm);
int lt = LedBoardTest(&Serial);
//验证感应器数量
if (lt > 4)
{
Serial.println("Led Board Test Fail.");
LED(1, 30, 0, 0);
// startms = 0;
}
else if (fm == 1)
{
Serial.println("factoryMode");
LED(1, 0, 0, 30);
}
else
{
//验证完成度
if (cp == sscount)
{
for (int j = 1; j <= 3; j++) // 100%完成的亮3个灯
LED(j, 0, 30, 0);
senScan.writeShortIntoEEPROM(BoardIsOK, 1);
}
else
{
for (int j = 1; j <= 3; j++) //没有完成但是关闭了出厂模式的的亮3个灯
LED(j, 30, 0, 0);
}
}
pixels.show();
startms = millis();
}
short CheckList(HardwareSerial *sl)
{
short cp = 0;
sl->print("Check list:");
for (int ii = 1; ii <= sscount; ii++)
{
short s = senScan.readShortFromEEPROM(SensorCheckAddress + ii);
if (s > 1)
s = 0;
cp = cp + s;
sl->print(s);
}
sl->println(",present=" + String(cp * 100 / sscount) + "%");
return cp;
}
void SetupLed(HardwareSerial *sl)
{
sscount = 1;
int ledtype1 = ReadLedType(1);
int ledtype2 = ReadLedType(2);
int ledtype3 = ReadLedType(3);
int ledtype4 = ReadLedType(4);
int ledtype5 = ReadLedType(5);
int lednums[2];
sl->print("LedType=");
GetLedType(ledtype1, true, lednums, sl);
SetSS(lednums[0], lednums[1], 1);
GetLedType(ledtype2, false, lednums, sl);
SetSS(lednums[0], lednums[1], 2);
GetLedType(ledtype3, false, lednums, sl);
SetSS(lednums[0], lednums[1], 3);
GetLedType(ledtype4, false, lednums, sl);
SetSS(lednums[0], lednums[1], 4);
GetLedType(ledtype5, false, lednums, sl);
SetSS(lednums[0], lednums[1], 5);
sscount--;
sl->print("//");
sl->print("Led Count=" + String(sscount) + "//");
senScan.ledcount = sscount;
sl->print("Led List=");
for (int i = 1; i <= sscount; i++)
{
sl->print(String(ss[i]) + ",");
}
sl->print("//");
sl->print("RowWidth=");
sl->print(RowWidth);
sl->print("//");
}
int ReadLedType(int address)
{
address--;
int t = senScan.readIntFromEEPROM(LedTypeEPAddress + address * 2);
if (t >= 0 && t < 10)
{
Serial.print("ReadLedType " + String(address) + "=" + String(t) + "//");
return t;
}
Serial.print("ReadLedType " + String(address) + "=fail" + "//");
return 1;
}
void WriteLedType(int address, int ledtype)
{
address--;
senScan.writeIntIntoEEPROM(LedTypeEPAddress + address * 2, ledtype, true);
Serial.print("LedType Write " + String(address) + "=" + String(ledtype) + "//");
}
void GetLedType(int ledtype, bool isfirst, int num[], HardwareSerial *sl)
{
switch (ledtype)
{
case LedType_16MM:
num[0] = isfirst ? LedNum_16MM_1[0] : LedNum_16MM_2[0];
num[1] = isfirst ? LedNum_16MM_1[1] : LedNum_16MM_2[1];
break;
case LedType_25MM:
num[0] = isfirst ? LedNum_25MM_1[0] : LedNum_25MM_2[0];
num[1] = isfirst ? LedNum_25MM_1[1] : LedNum_25MM_2[1];
break;
case LedType_35MM:
num[0] = isfirst ? LedNum_35MM_1[0] : LedNum_35MM_2[0];
num[1] = isfirst ? LedNum_35MM_1[1] : LedNum_35MM_2[1];
break;
case LedType_45MM:
num[0] = isfirst ? LedNum_45MM_1[0] : LedNum_45MM_2[0];
num[1] = isfirst ? LedNum_45MM_1[1] : LedNum_45MM_2[1];
break;
case LedType_54MM:
num[0] = isfirst ? LedNum_54MM_1[0] : LedNum_54MM_2[0];
num[1] = isfirst ? LedNum_54MM_1[1] : LedNum_54MM_2[1];
break;
case 0:
num[0] = isfirst ? LedNum_16MM_1[0] : 0;
num[1] = isfirst ? LedNum_16MM_1[1] : 0;
break;
}
sl->print(String(num[0]) + "," + String(num[1]) + ",");
}
void SetSS(int n1, int n2, int index)
{
index--;
int start = index * 20;
for (int i = 1; i <= n1; i++)
{
ss[sscount] = start + i;
sscount++;
}
start = index * 20 + 10;
for (int i = 1; i <= n2; i++)
{
ss[sscount] = start + i;
sscount++;
}
// Serial.print(String(sscount)+",");
}
long dur;
void loop()
{
static int i = 1;
dur = millis();
if (Serial.available() > 0)
{
char inChar = (char)Serial.read();
inputString2 += inChar;
if (inChar == '\n')
{
inputString2.trim();
commandString = inputString2;
inputString2 = "";
CommandProcess(&Serial);
}
}
if (startms != 0 && millis() - startms > 1000 * 12)
{
startms = 0;
short fm = senScan.readShortFromEEPROM(FactoryModeAddress);
if (fm == 1)
{
Serial.println("factoryMode calibration start");
// delay(3000);
for (int j = 1; j <= 100; j++)
LED(j, 0, 0, 30);
pixels.show();
delay(10);
calibration(1); // mode 1 is max
delay(500);
calibration(-1); // mode -1 is min
for (int j = 1; j <= 100; j++)
LED(j, 0, 0, 0);
pixels.show();
delay(500);
senScan.factoryMode = true;
return;
}
}
if (diagnosMode || senScan.factoryMode)
{
bool closefactory = true;
for (int ii = 1; ii <= sscount; ii++)
{
short s = senScan.readShortFromEEPROM(SensorCheckAddress + ii);
if (status[ii])
{
// Serial << "NO." << ii << ' ' << ss[ii] << " ";
LED(ii, 0, 50, 0);
if (senScan.factoryMode)
{
if (s != 1)
{
senScan.writeShortIntoEEPROM(SensorCheckAddress + ii, 1);
}
}
}
else
{
if (senScan.factoryMode)
{
LED(ii, 10, 10, 10);
if (s != 1)
closefactory = false;
else
LED(ii, 0, 0, 30);
}
}
}
pixels.show();
if (senScan.factoryMode && closefactory)
{
pixels.show();
senScan.writeShortIntoEEPROM(FactoryModeAddress, 0);
Serial.println("factoryMode OFF");
sleep(10);
senScan.factoryMode = false;
ESP.restart();
}
}
status[i] = senScan.getstatus(ss[i]);
if (i >= sscount)
i = 1;
else
i++;
/*
for (int j = 1; j <= sscount ; j++) {
LED(j,0, 0, 0);
}
LED(i,30, 0, 0);
*/
// pixels.show();
serialEvent();
}
void serialEvent()
{
// Serial.println(millis());
//
while (maincontrol.available() > 0)
{
// get the new byte:
char inChar = (char)maincontrol.read();
// Serial.println("{" + String(inChar) + "}");
// maincontrol.println("{" + String(inChar) + "}");
inputString += inChar;
if (inChar == '\n')
{
inputString.trim();
commandString = inputString;
inputString = "";
CommandProcess(&maincontrol);
Serial << " time to prosess " << (millis() - dur) << endl;
break;
}
}
}
void CommandProcess(HardwareSerial *sl)
{
int addr = ADDR;
String str = "A" + String(addr); // + "\n" ;
String str1 = "B" + String(addr - 10); // + "\n" ;
String str2 = "H" + String(addr); // + "\n" ;
// Serial.println(commandString.length());
// Serial.println(commandString);
// if (inputString.indexOf(str) >= 0 ) {
if (commandString == str)
{
Serial.println("quick scan req");
scan(sl);
}
else if (commandString == str1)
{
Serial.println("quick scan req");
scan(sl);
}
else if (commandString == str2)
{
Serial.println("quick hexscan req");
hexgen();
}
else if (commandString == "diagnosMode")
{
diagnosMode = true;
senScan.diagnosMode = true;
sl->println("diagnosMode on");
}
else if (commandString == "INFO")
{
info(sl);
}
else if (commandString.startsWith("ADDR="))
{
int addrt = commandString.substring(5).toInt();
if (addrt > 0 && addrt < 50)
{
senScan.writeIntIntoEEPROM(ADDREPAddress, addrt);
ADDR = addrt;
sl->println("Set ADDR=" + String(addrt) + " OK");
}
else
sl->println("Set ADDR=" + String(addrt) + " fail.");
}
else if (commandString.startsWith("{"))
{
commandString.toCharArray(json, 320);
jsonBreak(sl);
}
commandString = "";
}
void info(HardwareSerial *sl)
{
sl->print("Version=" + String(ver) + "//");
sl->print("DeviceUniqueID=" + DeviceUniqueID + "//");
sl->print("ADDR=" + String(ADDR) + "//");
sl->print("ShelfPartName=" + ShelfPartName + "//");
sl->print("BoardIsOK=" + String(senScan.readShortFromEEPROM(BoardIsOK)) + "//");
SetupLed(sl);
sl->println();
}
void jsonBreak(HardwareSerial *sl)
{
StaticJsonDocument<1000> doc;
// Allocate the JSON document
//
// Inside the brackets, 200 is the capacity of the memory pool in bytes.
// Don't forget to change this value to match your JSON document.
// Use arduinojson.org/v6/assistant to compute the capacity.
// StaticJsonDocument<200> doc;
// Serial.print(F("Braking >> "));
// Serial.println(json);
DeserializationError error = deserializeJson(doc, json);
// Test if parsing succeeds.
if (error)
{
sl->print(F("sensor board deserializeJson() failed: "));
sl->println(error.f_str());
return;
}
int addr = doc["ADDR"];
// Serial.println(millis());
if (ADDR == addr || addr == 99)
{
// Serial.println("true addr flag");
// Fetch values.
//
// Most of the time, you can rely on the implicit casts.
// In other case, you can do doc["time"].as<long>();
String scanreq = doc["scan"];
if (scanreq == "all" || scanreq == "ALL")
{
sl->print("A");
sl->print(ADDR);
scan(sl);
return;
}
else if (ADDR == addr)
maincontrol << "ADDR:" << ADDR << " done" << endl;
String calibrate = doc["calibrate"];
String action = doc["action"];
// int red = doc["RGB"][0];
// int green = doc["RGB"][1];
// int blue = doc["RGB"][2];
if (doc["color"][0][0] > 0)
{
for (int i = 0; i < 100; i++)
{
int indexofcolor = doc["color"][i][0];
if (indexofcolor == 0)
break;
for (int j = 1; j < 100; j++)
{
int indexofled = doc["color"][i][j];
if (indexofled == 0)
break;
colorget(indexofcolor, indexofled);
}
}
pixels.show();
return;
}
// Serial.println(test);
/*
if ( doc["led"][0]>0)
for (int i = 0; i <= 100; i++)
{
int a = doc["led"][i];
if (a > 0)
LED(a, red, green, blue);
// colorget(doc["led"][0],a);
}
*/
if (doc["ledrange"][0] > 0)
{
for (int i = doc["ledrange"][1]; i <= doc["ledrange"][2]; i++)
{
int a = i;
if (a > 0)
// LED (a , red , green , blue );
colorget(doc["ledrange"][0], a);
}
pixels.show();
return;
}
if (doc["colorset"][0][0] > 0)
{
for (int i = 0; i < 100; i++)
{
int indexofcolor = doc["colorset"][i][0];
if (indexofcolor == 0)
break;
int redcolor = doc["colorset"][i][1];
int greencolor = doc["colorset"][i][2];
int bluecolor = doc["colorset"][i][3];
colorset(indexofcolor, redcolor, greencolor, bluecolor);
}
EEPROM.commit();
return;
}
if (scanreq == "true")
{
scan(sl);
return;
}
if (calibrate == "autotrain")
{
for (int j = 0; j < 100; j++)
pixels.setPixelColor(j, pixels.Color(0, 0, 30));
pixels.show();
delay(10);
calibration(1); // mode 1 is max
delay(500);
calibration(-1); // mode -1 is min
for (int j = 0; j < 100; j++)
pixels.setPixelColor(j, pixels.Color(0, 0, 0));
pixels.show();
return;
}
if (calibrate == "max")
{
calibration(1); // mode 1 is max
return;
}
if (calibrate == "min")
{
calibration(-1); // mode -1 is min
return;
}
if (doc["setcalibrate"][0] > 0)
{
senScan.setcalnum(sl, doc["setcalibrate"][0], ss[(int)doc["setcalibrate"][1]], ss[(int)doc["setcalibrate"][2]], doc["setcalibrate"][3], doc["setcalibrate"][4]); // start pin , end pin , max , min ,threshold
return;
}
if (doc["getcalibrate"][0] > 0)
{
senScan.getcalnum(sl, doc["getcalibrate"][0], doc["getcalibrate"][1], doc["getcalibrate"][2], doc["getcalibrate"][3], doc["getcalibrate"][4]); // start pin , end pin , max , min ,threshold
sl->println();
return;
}
if (action == "siteid")
{
String hwid = doc["hwid"];
if (hwid.equals(DeviceUniqueID))
{
int addrt = doc["addr"];
senScan.writeIntIntoEEPROM(ADDREPAddress, addrt);
ADDR = addrt;
sl->println("Set ADDR=" + String(addrt) + " OK");
}
return;
}
if (action == "info")
{
info(sl);
return;
}
if (action == "diagnosMode")
{
diagnosMode = true;
senScan.diagnosMode = true;
sl->println("diagnosMode on addr=" + String(ADDR));
return;
}
if (doc["ledtype"][0] > 0)
{
for (int i = 0; i < 5; i++)
{
WriteLedType(i + 1, doc["ledtype"][i]);
}
RowWidth = doc["ledtype"][5];
senScan.writeShortIntoEEPROM(RowWidthAddress, RowWidth);
senScan.EEPROMcommit();
SetupLed(sl);
sl->println();
return;
}
if (action == "report")
{
delay((ADDR-1)*30+random(1, 30));
sl->print("_ADDR=" + String(ADDR) + "//");
sl->print("Version=" + String(ver) + "//");
sl->println("DeviceUniqueID=" + DeviceUniqueID + "//");
return;
}
if (action == "factoryModeOFFFF")
{
senScan.writeShortIntoEEPROM(FactoryModeAddress, 0);
sl->println("set factoryMode OFF");
senScan.factoryMode = false;
return;
}
if (action == "factoryModeON")
{
senScan.writeShortIntoEEPROM(FactoryModeAddress, 1,true);
for (int i = 1; i <= 100; i++)
{
senScan.calibrate(i, 1);
}
senScan.EEPROMcommit();
sl->println("set factoryMode ON");
senScan.factoryMode = true;
delay(1000);
ESP.restart();
return;
}
if (action == "CheckList")
{
CheckList(sl);
return;
}
if (action == "ClearCheckList")
{
for (int i = 1; i <= 100; i++)
{
senScan.writeShortIntoEEPROM(SensorCheckAddress + i, 0, true);
}
senScan.writeShortIntoEEPROM(BoardIsOK, 0, true);
senScan.EEPROMcommit();
*sl << "ClearCheckList OK\r\n";
return;
}
if (action == "PrintStatus")
{
for (int i = 1; i <= sscount; i++)
{
int pin = ss[i];
float max = senScan.getmax(pin);
float min = senScan.getmin(pin);
float sample = senScan.getadc(pin, true);
float result = ((max - sample) / (max - min)) * 100;
*sl << "\r\npin:" << pin << " max:" << max << " min:" << min << " sample:" << sample << " sen%:" << result;
}
return;
}
if (action == "LedBoardTest")
{
LedBoardTest(sl);
return;
}
if (action == "ShelfPart")
{
String partname = doc["name"];
EEPROM.writeString(ShelfPartAddress, partname);
EEPROM.commit();
delay(100);
*sl << "Set ShelfPartName OK";
return;
}
}
}
int LedBoardTest(HardwareSerial *sl)
{
int testfailcount = 0;
int ssc = 1;
for (int i = 1; i <= 100; i++)
{
long a = senScan.getadc(i, true);
bool hasled = false;
if (ss[ssc] == i)
{
hasled = true;
ssc++;
}
if (hasled)
{
if (a < 100)
testfailcount = testfailcount + 10;
}
else
{
if (a > 1000)
testfailcount++;
}
sl->print(i);
if (hasled)
sl->print("*");
else
sl->print("-");
if (a <= 100)
sl->print("NG");
else
sl->print(a);
sl->print(",");
}
sl->println("testfailcount:" + String(testfailcount));
return testfailcount;
}
void LED(int led_num, int Red, int green, int blue)
{
// maincontrol.print("flag");
// leds[led_num - 1 ] = CRGB(Red, green, blue);
pixels.setPixelColor(led_num - 1, pixels.Color(green, Red, blue));
//
// Serial <<"LED NO."<< led_num << 'R' << Red << 'G' << green << 'B' << blue << endl ;
// delay(1);
}
void scan(HardwareSerial *sl)
{
sl->print('[');
// Serial.print('[');
for (int i = 1; i <= 100; i++)
{
// status[i] = senScan.getstatus(i);
sl->print(status[i]);
// maincontrol.print("asd");
// Serial.print(status[i]);
}
sl->println(']');
// Serial.println(']');
}
void calibration(int mode)
{
// Serial.println("calibrating start");
for (int i = 1; i <= 100; i++)
{
senScan.calibrate(i, mode);
delay(10);
Serial.print("^ calibrating of : ");
Serial.println(i);
}
Serial.println("end of calibration");
senScan.EEPROMcommit();
}
void colorset(int index, int R, int G, int B)
{
// const int memBasecoloradr = 800;
// EEPROM.setMemPool(memBasecoloradr, EEPROMSizeMega);
int coloradr = ColorsetAddress + (index * 4);
int redadr = coloradr + 1;
int greenadr = coloradr + 2;
int blueadr = coloradr + 3;
// while (!EEPROM.isReady()) {}
EEPROM.write(redadr, R);
// while (!EEPROM.isReady()) {}
EEPROM.write(greenadr, G);
/// while (!EEPROM.isReady()) {}
EEPROM.write(blueadr, B);
Serial << "set index : " << index << "red : " << R << " green : " << G << " blue : " << B << endl;
// EEPROM.commit();
}
void colorget(int indexofcolor, int indexofLED)
{
// const int memBase = 800;
// EEPROM.setMemPool(memBase, EEPROMSizeMega);
// long addressByte = 1000;
// Serial.println(addressByte);
int coloradr = ColorsetAddress + (indexofcolor * 4);
int redadr = coloradr + 1;
int greenadr = coloradr + 2;
int blueadr = coloradr + 3;
// while (!EEPROM.isReady()) {}
int R = EEPROM.read(redadr);
// while (!EEPROM.isReady()) {}
int G = EEPROM.read(greenadr);
// while (!EEPROM.isReady()) {}
int B = EEPROM.read(blueadr);
// Serial << "indexofLED : " << indexofLED << " red : " << R << " green : " << G << " blue : " << B << endl;
LED(indexofLED, R, G, B);
}
void hexgen()
{
// unsigned long time = millis();
maincontrol.print("A");
maincontrol.print(ADDR);
maincontrol.print("[");
for (int i = 1; i <= 100; i += 4)
{
int sum = status[i] + (status[i + 1] * 2) + (status[i + 2] * 4) + (status[i + 3] * 8);
maincontrol.print(sum, HEX);
// Serial.println(sum,HEX);
}
maincontrol.println("]");
// Serial.println(millis()-time);
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!