├── .gitattributes ├── .gitignore ├── .pio ├── build │ ├── nodemcuv2 │ │ ├── .sconsign39.dblite │ │ ├── FrameworkArduino │ │ │ ├── Crypto.cpp.o │ │ │ ├── Esp-frag.cpp.o │ │ │ ├── Esp-version.cpp.o │ │ │ ├── Esp.cpp.o │ │ │ ├── FS.cpp.o │ │ │ ├── FSnoop.cpp.o │ │ │ ├── FunctionalInterrupt.cpp.o │ │ │ ├── HardwareSerial.cpp.o │ │ │ ├── IPAddress.cpp.o │ │ │ ├── MD5Builder.cpp.o │ │ │ ├── Print.cpp.o │ │ │ ├── Schedule.cpp.o │ │ │ ├── StackThunk.cpp.o │ │ │ ├── Stream.cpp.o │ │ │ ├── StreamString.cpp.o │ │ │ ├── Tone.cpp.o │ │ │ ├── TypeConversion.cpp.o │ │ │ ├── Updater.cpp.o │ │ │ ├── WMath.cpp.o │ │ │ ├── WString.cpp.o │ │ │ ├── abi.cpp.o │ │ │ ├── base64.cpp.o │ │ │ ├── cbuf.cpp.o │ │ │ ├── cont.S.o │ │ │ ├── cont_util.cpp.o │ │ │ ├── core_esp8266_app_entry_noextra4k.cpp.o │ │ │ ├── core_esp8266_eboot_command.cpp.o │ │ │ ├── core_esp8266_features.cpp.o │ │ │ ├── core_esp8266_flash_quirks.cpp.o │ │ │ ├── core_esp8266_flash_utils.cpp.o │ │ │ ├── core_esp8266_i2s.cpp.o │ │ │ ├── core_esp8266_main.cpp.o │ │ │ ├── core_esp8266_noniso.cpp.o │ │ │ ├── core_esp8266_phy.cpp.o │ │ │ ├── core_esp8266_postmortem.cpp.o │ │ │ ├── core_esp8266_si2c.cpp.o │ │ │ ├── core_esp8266_sigma_delta.cpp.o │ │ │ ├── core_esp8266_spi_utils.cpp.o │ │ │ ├── core_esp8266_timer.cpp.o │ │ │ ├── core_esp8266_waveform.cpp.o │ │ │ ├── core_esp8266_wiring.cpp.o │ │ │ ├── core_esp8266_wiring_analog.cpp.o │ │ │ ├── core_esp8266_wiring_digital.cpp.o │ │ │ ├── core_esp8266_wiring_pulse.cpp.o │ │ │ ├── core_esp8266_wiring_pwm.cpp.o │ │ │ ├── core_esp8266_wiring_shift.cpp.o │ │ │ ├── crc32.cpp.o │ │ │ ├── debug.cpp.o │ │ │ ├── flash_hal.cpp.o │ │ │ ├── gdb_hooks.cpp.o │ │ │ ├── heap.cpp.o │ │ │ ├── libb64 │ │ │ │ ├── cdecode.cpp.o │ │ │ │ └── cencode.cpp.o │ │ │ ├── libc_replacements.cpp.o │ │ │ ├── sntp-lwip2.cpp.o │ │ │ ├── spiffs │ │ │ │ ├── spiffs_cache.cpp.o │ │ │ │ ├── spiffs_check.cpp.o │ │ │ │ ├── spiffs_gc.cpp.o │ │ │ │ ├── spiffs_hydrogen.cpp.o │ │ │ │ └── spiffs_nucleus.cpp.o │ │ │ ├── spiffs_api.cpp.o │ │ │ ├── sqrt32.cpp.o │ │ │ ├── time.cpp.o │ │ │ ├── uart.cpp.o │ │ │ └── umm_malloc │ │ │ │ ├── umm_info.c.o │ │ │ │ ├── umm_integrity.c.o │ │ │ │ ├── umm_local.c.o │ │ │ │ ├── umm_malloc.cpp.o │ │ │ │ └── umm_poison.c.o │ │ ├── firmware.bin │ │ ├── firmware.elf │ │ ├── idedata.json │ │ ├── ld │ │ │ └── local.eagle.app.v6.common.ld │ │ ├── lib009 │ │ │ ├── ESP8266mDNS │ │ │ │ ├── ESP8266mDNS.cpp.o │ │ │ │ ├── ESP8266mDNS_Legacy.cpp.o │ │ │ │ ├── LEAmDNS.cpp.o │ │ │ │ ├── LEAmDNS_Control.cpp.o │ │ │ │ ├── LEAmDNS_Helpers.cpp.o │ │ │ │ ├── LEAmDNS_Structs.cpp.o │ │ │ │ └── LEAmDNS_Transfer.cpp.o │ │ │ └── libESP8266mDNS.a │ │ ├── lib0f4 │ │ │ └── FastLED │ │ │ │ ├── FastLED.cpp.o │ │ │ │ ├── bitswap.cpp.o │ │ │ │ ├── colorpalettes.cpp.o │ │ │ │ ├── colorutils.cpp.o │ │ │ │ ├── hsv2rgb.cpp.o │ │ │ │ ├── lib8tion.cpp.o │ │ │ │ ├── noise.cpp.o │ │ │ │ ├── power_mgt.cpp.o │ │ │ │ └── wiring.cpp.o │ │ ├── lib270 │ │ │ ├── DNSServer │ │ │ │ └── DNSServer.cpp.o │ │ │ └── libDNSServer.a │ │ ├── lib2fd │ │ │ ├── ESP8266HTTPClient │ │ │ │ └── ESP8266HTTPClient.cpp.o │ │ │ └── libESP8266HTTPClient.a │ │ ├── lib34c │ │ │ ├── DFRobotDFPlayerMini-master │ │ │ │ └── DFRobotDFPlayerMini.cpp.o │ │ │ └── libDFRobotDFPlayerMini-master.a │ │ ├── lib401 │ │ │ ├── Wire │ │ │ │ └── Wire.cpp.o │ │ │ └── libWire.a │ │ ├── lib48d │ │ │ ├── SoftwareSerial │ │ │ │ └── SoftwareSerial.cpp.o │ │ │ └── libSoftwareSerial.a │ │ ├── lib527 │ │ │ ├── SHT3x-master │ │ │ │ └── SHT3x.cpp.o │ │ │ └── libSHT3x-master.a │ │ ├── lib629 │ │ │ ├── Ticker │ │ │ │ └── Ticker.cpp.o │ │ │ └── libTicker.a │ │ ├── lib72b │ │ │ ├── Adafruit HTU21DF Library │ │ │ │ └── Adafruit_HTU21DF.cpp.o │ │ │ └── libAdafruit HTU21DF Library.a │ │ ├── lib753 │ │ │ ├── DHT_sensor_library │ │ │ │ ├── Adafruit_Sensor.cpp.o │ │ │ │ ├── DHT.cpp.o │ │ │ │ └── DHT_U.cpp.o │ │ │ └── libDHT_sensor_library.a │ │ ├── lib8ab │ │ │ ├── ESP8266httpUpdate │ │ │ │ └── ESP8266httpUpdate.cpp.o │ │ │ └── libESP8266httpUpdate.a │ │ ├── lib9ef │ │ │ ├── DoubleResetDetect │ │ │ │ └── DoubleResetDetect.cpp.o │ │ │ └── libDoubleResetDetect.a │ │ ├── libFrameworkArduino.a │ │ ├── libFrameworkArduinoVariant.a │ │ ├── libab8 │ │ │ ├── APDS9960 │ │ │ │ └── SparkFun_APDS9960.cpp.o │ │ │ └── libAPDS9960.a │ │ ├── libb36 │ │ │ ├── SPI │ │ │ │ └── SPI.cpp.o │ │ │ └── libSPI.a │ │ ├── libb37 │ │ │ ├── RTClib │ │ │ │ └── RTClib.cpp.o │ │ │ └── libRTClib.a │ │ ├── libbd9 │ │ │ ├── LDR │ │ │ │ └── LightDependentResistor.cpp.o │ │ │ └── libLDR.a │ │ ├── libc01 │ │ │ ├── Adafruit_GFX │ │ │ │ ├── Adafruit_GFX.cpp.o │ │ │ │ ├── Adafruit_SPITFT.cpp.o │ │ │ │ └── glcdfont.c.o │ │ │ └── libAdafruit_GFX.a │ │ ├── libc53 │ │ │ ├── ESP8266WebServer │ │ │ │ └── detail │ │ │ │ │ └── mimetable.cpp.o │ │ │ └── libESP8266WebServer.a │ │ ├── libd01 │ │ │ ├── PubSubClient │ │ │ │ └── PubSubClient.cpp.o │ │ │ └── libPubSubClient.a │ │ ├── libd16 │ │ │ ├── ESP8266WiFi │ │ │ │ ├── BearSSLHelpers.cpp.o │ │ │ │ ├── CertStoreBearSSL.cpp.o │ │ │ │ ├── ESP8266WiFi.cpp.o │ │ │ │ ├── ESP8266WiFiAP.cpp.o │ │ │ │ ├── ESP8266WiFiGeneric.cpp.o │ │ │ │ ├── ESP8266WiFiGratuitous.cpp.o │ │ │ │ ├── ESP8266WiFiMulti.cpp.o │ │ │ │ ├── ESP8266WiFiSTA-WPS.cpp.o │ │ │ │ ├── ESP8266WiFiSTA.cpp.o │ │ │ │ ├── ESP8266WiFiScan.cpp.o │ │ │ │ ├── WiFiClient.cpp.o │ │ │ │ ├── WiFiClientSecureAxTLS.cpp.o │ │ │ │ ├── WiFiClientSecureBearSSL.cpp.o │ │ │ │ ├── WiFiServer.cpp.o │ │ │ │ ├── WiFiServerSecureAxTLS.cpp.o │ │ │ │ ├── WiFiServerSecureBearSSL.cpp.o │ │ │ │ └── WiFiUdp.cpp.o │ │ │ └── libESP8266WiFi.a │ │ ├── libd88 │ │ │ ├── WiFiManager │ │ │ │ └── WiFiManager.cpp.o │ │ │ └── libWiFiManager.a │ │ ├── libff7 │ │ │ ├── NeoMatrix │ │ │ │ └── FastLED_NeoMatrix.cpp.o │ │ │ └── libNeoMatrix.a │ │ └── src │ │ │ ├── AWTRIXController-zz.cpp.o │ │ │ ├── Lite │ │ │ └── ApePixelClock.cpp.o │ │ │ └── MenueControl │ │ │ └── MenueControl.cpp.o │ └── project.checksum └── libdeps │ └── nodemcuv2 │ ├── Adafruit HTU21DF Library │ ├── .github │ │ ├── ISSUE_TEMPLATE.md │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ └── workflows │ │ │ └── githubci.yml │ ├── .piopm │ ├── Adafruit_HTU21DF.cpp │ ├── Adafruit_HTU21DF.h │ ├── README.md │ ├── examples │ │ └── HTU21DFtest │ │ │ └── HTU21DFtest.ino │ └── library.properties │ ├── BME280_Light │ ├── .piopm │ ├── BME280_t.h │ ├── README.md │ ├── examples │ │ └── bme280_simple │ │ │ └── bme280_simple.ino │ ├── keywords.txt │ └── library.json │ ├── DoubleResetDetect │ ├── .gitignore │ ├── .piopm │ ├── LICENSE │ ├── README.md │ ├── examples │ │ └── Minimal │ │ │ └── Minimal.ino │ ├── keywords.txt │ ├── library.properties │ └── src │ │ ├── DoubleResetDetect.cpp │ │ └── DoubleResetDetect.h │ ├── SHT3x-master │ ├── LICENSE │ ├── README.md │ ├── SHT3x.cpp │ ├── SHT3x.h │ ├── examples │ │ ├── Absolute_Humidity │ │ │ └── Absolute_Humidity.ino │ │ ├── Calibration │ │ │ └── Calibration.ino │ │ ├── Data_Update_speed │ │ │ └── Data_Update_speed.ino │ │ ├── Operation_modes │ │ │ └── Operation_modes.ino │ │ ├── Simple_operation │ │ │ └── Simple_operation.ino │ │ ├── Temperature_Scales │ │ │ └── Temperature_Scales.ino │ │ └── Tolerances │ │ │ └── Tolerances.ino │ └── keywords.txt │ └── integrity.dat ├── .vscode ├── c_cpp_properties.json ├── extensions.json └── launch.json ├── LICENSE ├── README.md ├── _travis.yml ├── dfplayer文件目录.rar ├── lib ├── APDS9960 │ ├── .gitattributes │ ├── .gitignore │ ├── LICENSE.md │ ├── README.md │ ├── library.properties │ └── src │ │ ├── README.md │ │ ├── SparkFun_APDS9960.cpp │ │ └── SparkFun_APDS9960.h ├── Adafruit_GFX │ ├── .gitignore │ ├── Adafruit_GFX.cpp │ ├── Adafruit_GFX.h │ ├── Adafruit_SPITFT.cpp │ ├── Adafruit_SPITFT.h │ ├── Adafruit_SPITFT_Macros.h │ ├── Fonts │ │ └── TomThumb.h │ ├── README.md │ ├── fontconvert │ │ ├── Makefile │ │ ├── fontconvert.c │ │ ├── fontconvert_win.md │ │ └── makefonts.sh │ ├── gfxfont.h │ ├── glcdfont.c │ ├── library.properties │ └── license.txt ├── Adafruit_NeoPixel │ ├── .library.json │ ├── .travis.yml │ ├── Adafruit_NeoPixel.cpp │ ├── Adafruit_NeoPixel.h │ ├── COPYING │ ├── README.md │ ├── esp8266.c │ ├── keywords.txt │ └── library.properties ├── Adafruit_Unified_Sensor │ ├── Adafruit_Sensor.cpp │ ├── Adafruit_Sensor.h │ ├── LICENSE.txt │ ├── README.md │ ├── examples │ │ └── sensortest │ │ │ └── sensortest.ino │ └── library.properties ├── ArduinoJson │ ├── .clang-format │ ├── .gitattributes │ ├── .gitignore │ ├── .library.json │ ├── .mbedignore │ ├── .travis.yml │ ├── ArduinoJson.h │ ├── CHANGELOG.md │ ├── CMakeLists.txt │ ├── CONTRIBUTING.md │ ├── LICENSE.md │ ├── README.md │ ├── SUPPORT.md │ ├── appveyor.yml │ ├── banner.svg │ ├── keywords.txt │ ├── library.json │ ├── library.properties │ └── src │ │ ├── ArduinoJson.h │ │ ├── ArduinoJson.hpp │ │ └── ArduinoJson │ │ ├── Configuration.hpp │ │ ├── Data │ │ ├── Encoding.hpp │ │ ├── JsonBufferAllocated.hpp │ │ ├── JsonFloat.hpp │ │ ├── JsonInteger.hpp │ │ ├── JsonVariantAs.hpp │ │ ├── JsonVariantContent.hpp │ │ ├── JsonVariantDefault.hpp │ │ ├── JsonVariantType.hpp │ │ ├── List.hpp │ │ ├── ListConstIterator.hpp │ │ ├── ListIterator.hpp │ │ ├── ListNode.hpp │ │ ├── NonCopyable.hpp │ │ ├── ReferenceType.hpp │ │ └── ValueSaver.hpp │ │ ├── Deserialization │ │ ├── Comments.hpp │ │ ├── JsonParser.hpp │ │ ├── JsonParserImpl.hpp │ │ └── StringWriter.hpp │ │ ├── DynamicJsonBuffer.hpp │ │ ├── JsonArray.hpp │ │ ├── JsonArrayImpl.hpp │ │ ├── JsonArraySubscript.hpp │ │ ├── JsonBuffer.hpp │ │ ├── JsonBufferBase.hpp │ │ ├── JsonBufferImpl.hpp │ │ ├── JsonObject.hpp │ │ ├── JsonObjectImpl.hpp │ │ ├── JsonObjectSubscript.hpp │ │ ├── JsonPair.hpp │ │ ├── JsonVariant.hpp │ │ ├── JsonVariantBase.hpp │ │ ├── JsonVariantCasts.hpp │ │ ├── JsonVariantComparisons.hpp │ │ ├── JsonVariantImpl.hpp │ │ ├── JsonVariantOr.hpp │ │ ├── JsonVariantSubscripts.hpp │ │ ├── Polyfills │ │ ├── attributes.hpp │ │ ├── ctype.hpp │ │ ├── isFloat.hpp │ │ ├── isInteger.hpp │ │ ├── math.hpp │ │ ├── parseFloat.hpp │ │ └── parseInteger.hpp │ │ ├── RawJson.hpp │ │ ├── Serialization │ │ ├── DummyPrint.hpp │ │ ├── DynamicStringBuilder.hpp │ │ ├── FloatParts.hpp │ │ ├── IndentedPrint.hpp │ │ ├── JsonPrintable.hpp │ │ ├── JsonSerializer.hpp │ │ ├── JsonSerializerImpl.hpp │ │ ├── JsonWriter.hpp │ │ ├── Prettyfier.hpp │ │ ├── StaticStringBuilder.hpp │ │ └── StreamPrintAdapter.hpp │ │ ├── StaticJsonBuffer.hpp │ │ ├── StringTraits │ │ ├── ArduinoStream.hpp │ │ ├── CharPointer.hpp │ │ ├── FlashString.hpp │ │ ├── StdStream.hpp │ │ ├── StdString.hpp │ │ └── StringTraits.hpp │ │ ├── TypeTraits │ │ ├── EnableIf.hpp │ │ ├── FloatTraits.hpp │ │ ├── IsArray.hpp │ │ ├── IsBaseOf.hpp │ │ ├── IsChar.hpp │ │ ├── IsConst.hpp │ │ ├── IsFloatingPoint.hpp │ │ ├── IsIntegral.hpp │ │ ├── IsSame.hpp │ │ ├── IsSignedIntegral.hpp │ │ ├── IsUnsignedIntegral.hpp │ │ ├── IsVariant.hpp │ │ ├── RemoveConst.hpp │ │ └── RemoveReference.hpp │ │ └── version.hpp ├── DFRobotDFPlayerMini-master │ ├── .travis.yml │ ├── DFRobotDFPlayerMini.cpp │ ├── DFRobotDFPlayerMini.h │ ├── README.md │ ├── doc │ │ └── FN-M16P+Embedded+MP3+Audio+Module+Datasheet.pdf │ ├── examples │ │ ├── AdvancedSettingViaSerial1 │ │ │ └── AdvancedSettingViaSerial1.ino │ │ ├── AdvancedSettingWithoutACK │ │ │ └── AdvancedSettingWithoutACK.ino │ │ ├── AdvancedSettingWithoutReset │ │ │ └── AdvancedSettingWithoutReset.ino │ │ ├── FullFunction │ │ │ └── FullFunction.ino │ │ ├── GetStarted │ │ │ └── GetStarted.ino │ │ └── ReadValues │ │ │ └── ReadValues.ino │ └── library.properties ├── DHT_sensor_library │ ├── Adafruit_Sensor.cpp │ ├── Adafruit_Sensor.h │ ├── CONTRIBUTING.md │ ├── DHT.cpp │ ├── DHT.h │ ├── DHT_U.cpp │ ├── DHT_U.h │ ├── README.md │ ├── code-of-conduct.md │ ├── examples │ │ ├── DHT_Unified_Sensor │ │ │ └── DHT_Unified_Sensor.ino │ │ └── DHTtester │ │ │ └── DHTtester.ino │ ├── keywords.txt │ ├── library.properties │ └── license.txt ├── FastLED │ ├── .library.json │ ├── FastLED.cpp │ ├── FastLED.h │ ├── LICENSE │ ├── PORTING.md │ ├── README.md │ ├── bitswap.cpp │ ├── bitswap.h │ ├── chipsets.h │ ├── color.h │ ├── colorpalettes.cpp │ ├── colorpalettes.h │ ├── colorutils.cpp │ ├── colorutils.h │ ├── component.mk │ ├── controller.h │ ├── cpp_compat.h │ ├── dmx.h │ ├── fastled_config.h │ ├── fastled_delay.h │ ├── fastled_progmem.h │ ├── fastpin.h │ ├── fastspi.h │ ├── fastspi_bitbang.h │ ├── fastspi_dma.h │ ├── fastspi_nop.h │ ├── fastspi_ref.h │ ├── fastspi_types.h │ ├── hsv2rgb.cpp │ ├── hsv2rgb.h │ ├── keywords.txt │ ├── led_sysdefs.h │ ├── lib8tion.cpp │ ├── lib8tion.h │ ├── lib8tion │ │ ├── math8.h │ │ ├── random8.h │ │ ├── scale8.h │ │ └── trig8.h │ ├── library.json │ ├── library.properties │ ├── noise.cpp │ ├── noise.h │ ├── pixelset.h │ ├── pixeltypes.h │ ├── platforms.h │ ├── platforms │ │ ├── arm │ │ │ ├── common │ │ │ │ └── m0clockless.h │ │ │ ├── d21 │ │ │ │ ├── clockless_arm_d21.h │ │ │ │ ├── fastled_arm_d21.h │ │ │ │ ├── fastpin_arm_d21.h │ │ │ │ └── led_sysdefs_arm_d21.h │ │ │ ├── d51 │ │ │ │ ├── clockless_arm_d51.h │ │ │ │ ├── fastled_arm_d51.h │ │ │ │ ├── fastpin_arm_d51.h │ │ │ │ └── led_sysdefs_arm_d51.h │ │ │ ├── k20 │ │ │ │ ├── clockless_arm_k20.h │ │ │ │ ├── clockless_block_arm_k20.h │ │ │ │ ├── fastled_arm_k20.h │ │ │ │ ├── fastpin_arm_k20.h │ │ │ │ ├── fastspi_arm_k20.h │ │ │ │ ├── led_sysdefs_arm_k20.h │ │ │ │ ├── octows2811_controller.h │ │ │ │ ├── smartmatrix_t3.h │ │ │ │ └── ws2812serial_controller.h │ │ │ ├── k66 │ │ │ │ ├── clockless_arm_k66.h │ │ │ │ ├── clockless_block_arm_k66.h │ │ │ │ ├── fastled_arm_k66.h │ │ │ │ ├── fastpin_arm_k66.h │ │ │ │ ├── fastspi_arm_k66.h │ │ │ │ └── led_sysdefs_arm_k66.h │ │ │ ├── kl26 │ │ │ │ ├── clockless_arm_kl26.h │ │ │ │ ├── fastled_arm_kl26.h │ │ │ │ ├── fastpin_arm_kl26.h │ │ │ │ ├── fastspi_arm_kl26.h │ │ │ │ └── led_sysdefs_arm_kl26.h │ │ │ ├── nrf51 │ │ │ │ ├── clockless_arm_nrf51.h │ │ │ │ ├── fastled_arm_nrf51.h │ │ │ │ ├── fastpin_arm_nrf51.h │ │ │ │ ├── fastspi_arm_nrf51.h │ │ │ │ └── led_sysdefs_arm_nrf51.h │ │ │ ├── sam │ │ │ │ ├── clockless_arm_sam.h │ │ │ │ ├── clockless_block_arm_sam.h │ │ │ │ ├── fastled_arm_sam.h │ │ │ │ ├── fastpin_arm_sam.h │ │ │ │ ├── fastspi_arm_sam.h │ │ │ │ └── led_sysdefs_arm_sam.h │ │ │ └── stm32 │ │ │ │ ├── clockless_arm_stm32.h │ │ │ │ ├── cm3_regs.h │ │ │ │ ├── fastled_arm_stm32.h │ │ │ │ ├── fastpin_arm_stm32.h │ │ │ │ └── led_sysdefs_arm_stm32.h │ │ ├── avr │ │ │ ├── clockless_trinket.h │ │ │ ├── fastled_avr.h │ │ │ ├── fastpin_avr.h │ │ │ ├── fastspi_avr.h │ │ │ └── led_sysdefs_avr.h │ │ └── esp │ │ │ ├── 32 │ │ │ ├── clockless_block_esp32.h │ │ │ ├── clockless_esp32.h │ │ │ ├── clockless_esp32.h.orig │ │ │ ├── fastled_esp32.h │ │ │ ├── fastpin_esp32.h │ │ │ └── led_sysdefs_esp32.h │ │ │ └── 8266 │ │ │ ├── clockless_block_esp8266.h │ │ │ ├── clockless_esp8266.h │ │ │ ├── fastled_esp8266.h │ │ │ ├── fastpin_esp8266.h │ │ │ └── led_sysdefs_esp8266.h │ ├── power_mgt.cpp │ ├── power_mgt.h │ ├── preview_changes.txt │ ├── release_notes.md │ └── wiring.cpp ├── LDR │ ├── LightDependentResistor.cpp │ ├── LightDependentResistor.h │ └── keywords.txt ├── NeoMatrix │ ├── COPYING │ ├── FastLED_NeoMatrix.cpp │ ├── FastLED_NeoMatrix.h │ ├── README.md │ ├── extras │ │ └── gamma.c │ ├── gamma.h │ └── library.properties ├── PubSubClient │ ├── .library.json │ ├── CHANGES.txt │ ├── LICENSE.txt │ ├── README.md │ ├── keywords.txt │ ├── library.json │ ├── library.properties │ └── src │ │ ├── PubSubClient.cpp │ │ └── PubSubClient.h ├── RTClib │ ├── README.md │ ├── RTClib.cpp │ ├── RTClib.h │ ├── code-of-conduct.md │ ├── examples │ │ ├── datecalc │ │ │ └── datecalc.ino │ │ ├── ds1307 │ │ │ └── ds1307.ino │ │ ├── ds1307SqwPin │ │ │ └── ds1307SqwPin.ino │ │ ├── ds1307nvram │ │ │ └── ds1307nvram.ino │ │ ├── ds3231 │ │ │ └── ds3231.ino │ │ ├── pcf8523 │ │ │ └── pcf8523.ino │ │ ├── pcf8523Countdown │ │ │ └── pcf8523Countdown.ino │ │ ├── softrtc │ │ │ └── softrtc.ino │ │ ├── timestamp │ │ │ └── timestamp.ino │ │ └── toString │ ├── keywords.txt │ ├── library.properties │ └── license.txt └── WiFiManager │ ├── .gitignore │ ├── .travis.yml │ ├── LICENSE │ ├── WiFiManager.cpp │ ├── WiFiManager.h │ ├── extras │ ├── WiFiManager.template.html │ ├── parse.js │ ├── png_signal_strength_master.png │ ├── template.h │ └── test.html │ ├── keywords.txt │ ├── library.json │ ├── library.properties │ └── strings_en.h ├── pixel clock offline v1.1.1PCB 及制板文件.rar ├── pixel clock v1.0.1 PCB 及制板文件.rar ├── platformio.ini ├── release └── firmware.bin ├── src ├── AWTRIXController-zz.cpp ├── Lite │ ├── ApePixelClock.cpp │ └── ApePixelClock.h └── MenueControl │ ├── MenueControl.cpp │ └── MenueControl.h ├── 侧面.jpg └── 正面.jpg /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .pio/ 2 | .pioenvs/ 3 | .piolibdeps/ 4 | .vscode/ 5 | src/awtrix-conf.h 6 | src/awtrix-conf.h 7 | src/awtrix-conf.h 8 | -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/.sconsign39.dblite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/.sconsign39.dblite -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/Crypto.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/Crypto.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/Esp-frag.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/Esp-frag.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/Esp-version.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/Esp-version.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/Esp.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/Esp.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/FS.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/FS.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/FSnoop.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/FSnoop.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/FunctionalInterrupt.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/FunctionalInterrupt.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/HardwareSerial.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/HardwareSerial.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/IPAddress.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/IPAddress.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/MD5Builder.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/MD5Builder.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/Print.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/Print.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/Schedule.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/Schedule.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/StackThunk.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/StackThunk.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/Stream.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/Stream.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/StreamString.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/StreamString.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/Tone.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/Tone.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/TypeConversion.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/TypeConversion.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/Updater.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/Updater.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/WMath.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/WMath.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/WString.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/WString.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/abi.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/abi.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/base64.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/base64.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/cbuf.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/cbuf.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/cont.S.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/cont.S.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/cont_util.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/cont_util.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_app_entry_noextra4k.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_app_entry_noextra4k.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_eboot_command.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_eboot_command.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_features.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_features.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_flash_quirks.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_flash_quirks.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_flash_utils.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_flash_utils.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_i2s.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_i2s.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_main.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_main.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_noniso.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_noniso.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_phy.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_phy.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_postmortem.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_postmortem.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_si2c.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_si2c.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_sigma_delta.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_sigma_delta.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_spi_utils.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_spi_utils.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_timer.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_timer.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_waveform.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_waveform.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_analog.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_analog.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_digital.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_digital.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_pulse.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_pulse.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_pwm.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_pwm.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_shift.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/core_esp8266_wiring_shift.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/crc32.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/crc32.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/debug.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/debug.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/flash_hal.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/flash_hal.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/gdb_hooks.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/gdb_hooks.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/heap.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/heap.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/libb64/cdecode.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/libb64/cdecode.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/libb64/cencode.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/libb64/cencode.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/libc_replacements.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/libc_replacements.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/sntp-lwip2.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/sntp-lwip2.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_cache.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_cache.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_check.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_check.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_gc.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_gc.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_hydrogen.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_hydrogen.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_nucleus.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/spiffs/spiffs_nucleus.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/spiffs_api.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/spiffs_api.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/sqrt32.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/sqrt32.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/time.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/time.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/uart.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/uart.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_info.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_info.c.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_integrity.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_integrity.c.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_local.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_local.c.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_malloc.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_malloc.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_poison.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/FrameworkArduino/umm_malloc/umm_poison.c.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/firmware.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/firmware.bin -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/firmware.elf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/firmware.elf -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib009/ESP8266mDNS/ESP8266mDNS.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib009/ESP8266mDNS/ESP8266mDNS.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib009/ESP8266mDNS/ESP8266mDNS_Legacy.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib009/ESP8266mDNS/ESP8266mDNS_Legacy.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib009/ESP8266mDNS/LEAmDNS.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib009/ESP8266mDNS/LEAmDNS.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib009/ESP8266mDNS/LEAmDNS_Control.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib009/ESP8266mDNS/LEAmDNS_Control.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib009/ESP8266mDNS/LEAmDNS_Helpers.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib009/ESP8266mDNS/LEAmDNS_Helpers.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib009/ESP8266mDNS/LEAmDNS_Structs.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib009/ESP8266mDNS/LEAmDNS_Structs.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib009/ESP8266mDNS/LEAmDNS_Transfer.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib009/ESP8266mDNS/LEAmDNS_Transfer.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib009/libESP8266mDNS.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib009/libESP8266mDNS.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib0f4/FastLED/FastLED.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib0f4/FastLED/FastLED.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib0f4/FastLED/bitswap.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib0f4/FastLED/bitswap.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib0f4/FastLED/colorpalettes.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib0f4/FastLED/colorpalettes.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib0f4/FastLED/colorutils.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib0f4/FastLED/colorutils.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib0f4/FastLED/hsv2rgb.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib0f4/FastLED/hsv2rgb.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib0f4/FastLED/lib8tion.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib0f4/FastLED/lib8tion.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib0f4/FastLED/noise.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib0f4/FastLED/noise.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib0f4/FastLED/power_mgt.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib0f4/FastLED/power_mgt.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib0f4/FastLED/wiring.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib0f4/FastLED/wiring.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib270/DNSServer/DNSServer.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib270/DNSServer/DNSServer.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib270/libDNSServer.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib270/libDNSServer.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib2fd/ESP8266HTTPClient/ESP8266HTTPClient.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib2fd/ESP8266HTTPClient/ESP8266HTTPClient.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib2fd/libESP8266HTTPClient.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib2fd/libESP8266HTTPClient.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib34c/DFRobotDFPlayerMini-master/DFRobotDFPlayerMini.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib34c/DFRobotDFPlayerMini-master/DFRobotDFPlayerMini.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib34c/libDFRobotDFPlayerMini-master.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib34c/libDFRobotDFPlayerMini-master.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib401/Wire/Wire.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib401/Wire/Wire.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib401/libWire.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib401/libWire.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib48d/SoftwareSerial/SoftwareSerial.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib48d/SoftwareSerial/SoftwareSerial.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib48d/libSoftwareSerial.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib48d/libSoftwareSerial.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib527/SHT3x-master/SHT3x.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib527/SHT3x-master/SHT3x.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib527/libSHT3x-master.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib527/libSHT3x-master.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib629/Ticker/Ticker.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib629/Ticker/Ticker.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib629/libTicker.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib629/libTicker.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib72b/Adafruit HTU21DF Library/Adafruit_HTU21DF.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib72b/Adafruit HTU21DF Library/Adafruit_HTU21DF.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib72b/libAdafruit HTU21DF Library.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib72b/libAdafruit HTU21DF Library.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib753/DHT_sensor_library/Adafruit_Sensor.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib753/DHT_sensor_library/Adafruit_Sensor.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib753/DHT_sensor_library/DHT.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib753/DHT_sensor_library/DHT.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib753/DHT_sensor_library/DHT_U.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib753/DHT_sensor_library/DHT_U.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib753/libDHT_sensor_library.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib753/libDHT_sensor_library.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib8ab/ESP8266httpUpdate/ESP8266httpUpdate.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib8ab/ESP8266httpUpdate/ESP8266httpUpdate.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib8ab/libESP8266httpUpdate.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib8ab/libESP8266httpUpdate.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib9ef/DoubleResetDetect/DoubleResetDetect.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib9ef/DoubleResetDetect/DoubleResetDetect.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/lib9ef/libDoubleResetDetect.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/lib9ef/libDoubleResetDetect.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libFrameworkArduino.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libFrameworkArduino.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libFrameworkArduinoVariant.a: -------------------------------------------------------------------------------- 1 | ! 2 | -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libab8/APDS9960/SparkFun_APDS9960.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libab8/APDS9960/SparkFun_APDS9960.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libab8/libAPDS9960.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libab8/libAPDS9960.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libb36/SPI/SPI.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libb36/SPI/SPI.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libb36/libSPI.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libb36/libSPI.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libb37/RTClib/RTClib.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libb37/RTClib/RTClib.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libb37/libRTClib.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libb37/libRTClib.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libbd9/LDR/LightDependentResistor.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libbd9/LDR/LightDependentResistor.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libbd9/libLDR.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libbd9/libLDR.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libc01/Adafruit_GFX/Adafruit_GFX.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libc01/Adafruit_GFX/Adafruit_GFX.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libc01/Adafruit_GFX/Adafruit_SPITFT.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libc01/Adafruit_GFX/Adafruit_SPITFT.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libc01/Adafruit_GFX/glcdfont.c.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libc01/Adafruit_GFX/glcdfont.c.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libc01/libAdafruit_GFX.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libc01/libAdafruit_GFX.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libc53/ESP8266WebServer/detail/mimetable.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libc53/ESP8266WebServer/detail/mimetable.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libc53/libESP8266WebServer.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libc53/libESP8266WebServer.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd01/PubSubClient/PubSubClient.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd01/PubSubClient/PubSubClient.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd01/libPubSubClient.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd01/libPubSubClient.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/BearSSLHelpers.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/BearSSLHelpers.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/CertStoreBearSSL.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/CertStoreBearSSL.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFi.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFi.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiAP.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiAP.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiMulti.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiMulti.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiSTA.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiSTA.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiScan.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/ESP8266WiFiScan.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiClient.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiClient.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiClientSecureAxTLS.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiClientSecureAxTLS.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiServer.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiServer.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiServerSecureAxTLS.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiServerSecureAxTLS.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiUdp.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/ESP8266WiFi/WiFiUdp.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd16/libESP8266WiFi.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd16/libESP8266WiFi.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd88/WiFiManager/WiFiManager.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd88/WiFiManager/WiFiManager.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libd88/libWiFiManager.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libd88/libWiFiManager.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libff7/NeoMatrix/FastLED_NeoMatrix.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libff7/NeoMatrix/FastLED_NeoMatrix.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/libff7/libNeoMatrix.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/libff7/libNeoMatrix.a -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/src/AWTRIXController-zz.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/src/AWTRIXController-zz.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/src/Lite/ApePixelClock.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/src/Lite/ApePixelClock.cpp.o -------------------------------------------------------------------------------- /.pio/build/nodemcuv2/src/MenueControl/MenueControl.cpp.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/.pio/build/nodemcuv2/src/MenueControl/MenueControl.cpp.o -------------------------------------------------------------------------------- /.pio/build/project.checksum: -------------------------------------------------------------------------------- 1 | 1923398994c89e5665a93085f05d46eb0a515c8c -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/Adafruit HTU21DF Library/.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Thank you for creating a pull request to contribute to Adafruit's GitHub code! 2 | Before you open the request please review the following guidelines and tips to 3 | help it be more easily integrated: 4 | 5 | - **Describe the scope of your change--i.e. what the change does and what parts 6 | of the code were modified.** This will help us understand any risks of integrating 7 | the code. 8 | 9 | - **Describe any known limitations with your change.** For example if the change 10 | doesn't apply to a supported platform of the library please mention it. 11 | 12 | - **Please run any tests or examples that can exercise your modified code.** We 13 | strive to not break users of the code and running tests/examples helps with this 14 | process. 15 | 16 | Thank you again for contributing! We will try to test and integrate the change 17 | as soon as we can, but be aware we have many GitHub repositories to manage and 18 | can't immediately respond to every request. There is no need to bump or check in 19 | on a pull request (it will clutter the discussion of the request). 20 | 21 | Also don't be worried if the request is closed or not integrated--sometimes the 22 | priorities of Adafruit's GitHub code (education, ease of use) might not match the 23 | priorities of the pull request. Don't fret, the open source community thrives on 24 | forks and GitHub makes it easy to keep your changes in a forked repo. 25 | 26 | After reviewing the guidelines above you can delete this text from the pull request. 27 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/Adafruit HTU21DF Library/.github/workflows/githubci.yml: -------------------------------------------------------------------------------- 1 | name: Arduino Library CI 2 | 3 | on: [pull_request, push, repository_dispatch] 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/setup-python@v1 11 | with: 12 | python-version: '3.x' 13 | - uses: actions/checkout@v2 14 | - uses: actions/checkout@v2 15 | with: 16 | repository: adafruit/ci-arduino 17 | path: ci 18 | 19 | - name: pre-install 20 | run: bash ci/actions_install.sh 21 | 22 | - name: test platforms 23 | run: python3 ci/build_platform.py main_platforms 24 | 25 | - name: clang 26 | run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r . 27 | 28 | - name: doxygen 29 | env: 30 | GH_REPO_TOKEN: ${{ secrets.GH_REPO_TOKEN }} 31 | PRETTYNAME : "Adafruit HTU21D-F Arduino Library" 32 | run: bash ci/doxy_gen_and_deploy.sh 33 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/Adafruit HTU21DF Library/.piopm: -------------------------------------------------------------------------------- 1 | {"type": "library", "name": "Adafruit HTU21DF Library", "version": "1.0.5", "spec": {"owner": "adafruit", "id": 566, "name": "Adafruit HTU21DF Library", "requirements": null, "url": null}} -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/Adafruit HTU21DF Library/Adafruit_HTU21DF.h: -------------------------------------------------------------------------------- 1 | /*! 2 | * @file Adafruit_HTU21DF.h 3 | */ 4 | 5 | #ifndef _ADAFRUIT_HTU21DF_H 6 | #define _ADAFRUIT_HTU21DF_H 7 | 8 | #if (ARDUINO >= 100) 9 | #include "Arduino.h" 10 | #else 11 | #include "WProgram.h" 12 | #endif 13 | #include "Wire.h" 14 | 15 | /** Default I2C address for the HTU21D. */ 16 | #define HTU21DF_I2CADDR (0x40) 17 | 18 | /** Read temperature register. */ 19 | #define HTU21DF_READTEMP (0xE3) 20 | 21 | /** Read humidity register. */ 22 | #define HTU21DF_READHUM (0xE5) 23 | 24 | /** Write register command. */ 25 | #define HTU21DF_WRITEREG (0xE6) 26 | 27 | /** Read register command. */ 28 | #define HTU21DF_READREG (0xE7) 29 | 30 | /** Reset command. */ 31 | #define HTU21DF_RESET (0xFE) 32 | 33 | /** 34 | * Driver for the Adafruit HTU21DF breakout board. 35 | */ 36 | class Adafruit_HTU21DF { 37 | public: 38 | Adafruit_HTU21DF(); 39 | 40 | boolean begin(void); 41 | float readTemperature(void); 42 | float readHumidity(void); 43 | void reset(void); 44 | 45 | private: 46 | boolean readData(void); 47 | float _last_humidity, _last_temp; 48 | }; 49 | 50 | #endif /* _ADAFRUIT_HTU21DF_H */ 51 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/Adafruit HTU21DF Library/examples/HTU21DFtest/HTU21DFtest.ino: -------------------------------------------------------------------------------- 1 | /*************************************************** 2 | This is an example for the HTU21D-F Humidity & Temp Sensor 3 | 4 | Designed specifically to work with the HTU21D-F sensor from Adafruit 5 | ----> https://www.adafruit.com/products/1899 6 | 7 | These displays use I2C to communicate, 2 pins are required to 8 | interface 9 | ****************************************************/ 10 | 11 | #include 12 | #include "Adafruit_HTU21DF.h" 13 | 14 | // Connect Vin to 3-5VDC 15 | // Connect GND to ground 16 | // Connect SCL to I2C clock pin (A5 on UNO) 17 | // Connect SDA to I2C data pin (A4 on UNO) 18 | 19 | Adafruit_HTU21DF htu = Adafruit_HTU21DF(); 20 | 21 | void setup() { 22 | Serial.begin(9600); 23 | Serial.println("HTU21D-F test"); 24 | 25 | if (!htu.begin()) { 26 | Serial.println("Couldn't find sensor!"); 27 | while (1); 28 | } 29 | } 30 | 31 | void loop() { 32 | float temp = htu.readTemperature(); 33 | float rel_hum = htu.readHumidity(); 34 | Serial.print("Temp: "); Serial.print(temp); Serial.print(" C"); 35 | Serial.print("\t\t"); 36 | Serial.print("Humidity: "); Serial.print(rel_hum); Serial.println(" \%"); 37 | delay(500); 38 | } 39 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/Adafruit HTU21DF Library/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit HTU21DF Library 2 | version=1.0.5 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Arduino library for the HTU21D-F sensors in the Adafruit shop 6 | paragraph=Arduino library for the HTU21D-F sensors in the Adafruit shop 7 | category=Sensors 8 | url=https://github.com/adafruit/Adafruit_HTU21DF_Library 9 | architectures=* 10 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/BME280_Light/.piopm: -------------------------------------------------------------------------------- 1 | {"type": "library", "name": "BME280_Light", "version": "0.0.0-alpha+sha.600667f3a6", "spec": {"owner": "enviromonitor", "id": 1554, "name": "BME280_Light", "requirements": null, "url": null}} -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/BME280_Light/README.md: -------------------------------------------------------------------------------- 1 | # BME280_light 2 | 3 | Lightweight and minimal BME280 implementation. 4 | 5 | This implementation is based on the work of reaper7 from ESP8266 board 6 | 7 | Originally based on: 8 | Adafruit Adafruit_BME280_Library https://github.com/adafruit/Adafruit_BME280_Library and Astuder BMP085-template-library-Energia https://github.com/astuder/BMP085-template-library-Energia plus code for altitude and relative pressure by r7 9 | 10 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/BME280_Light/keywords.txt: -------------------------------------------------------------------------------- 1 | BME280 KEYWORD1 2 | 3 | begin KEYWORD2 4 | refresh KEYWORD2 5 | 6 | BMP085_C LITERAL1 7 | BMP085_F LITERAL1 8 | 9 | temperature LITERAL2 10 | pressure LITERAL2 11 | humidity LITERAL2 12 | pressureToAltitude LITERAL2 13 | seaLevelForAltitude LITERAL2 14 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/BME280_Light/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BME280_Light", 3 | "description": "Lightweight and minimal BME280 temperature, humidity and barometric pressure sensos implementation for Arduino", 4 | "keywords": "bme, bme280, temperature, humidity, barometric pressure, pressure, sensor", 5 | "authors": [ 6 | { 7 | "name": "Tomasz 'Zen' Napierala", 8 | "email": "tomasz@napierala.org", 9 | "url": "http://smogly.org", 10 | "maintainer": true 11 | }, 12 | { 13 | "name": "reaper7", 14 | "url": "https://github.com/reaper7" 15 | } 16 | ], 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/EnviroMonitor/BME280_light.git" 20 | }, 21 | "frameworks": "arduino", 22 | "platforms": [ 23 | "espressif8266" 24 | ], 25 | "homepage": "http://smogly.org", 26 | "version": "0.0.0-alpha+sha.600667f3a6" 27 | } -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/DoubleResetDetect/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/ 2 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/DoubleResetDetect/.piopm: -------------------------------------------------------------------------------- 1 | {"type": "library", "name": "DoubleResetDetect", "version": "1.0.0", "spec": {"owner": "jenscski", "id": 5426, "name": "DoubleResetDetect", "requirements": null, "url": null}} -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/DoubleResetDetect/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Jens-Christian Skibakk 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/DoubleResetDetect/README.md: -------------------------------------------------------------------------------- 1 | # Double Reset Detect 2 | 3 | #### Description 4 | Arduino library to check for double reset on ESP8266 5 | 6 | This library gives one a opportunity to support an alternative boot mode. E.g. configuring WiFi using WiFiManager 7 | 8 | #### Supported hardware 9 | - ESP8266 [Arduino for ESP8266](https://github.com/esp8266/Arduino/) 10 | 11 | #### Usage 12 | See [example](examples/Minimal/Minimal.ino) for how to use library 13 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/DoubleResetDetect/examples/Minimal/Minimal.ino: -------------------------------------------------------------------------------- 1 | /* Minimal.ino 2 | * 3 | * Copyright (C) 2018 Jens-Christian Skibakk 4 | * 5 | * This software may be modified and distributed under the terms 6 | * of the MIT license. See the LICENSE file for details. 7 | */ 8 | 9 | #include 10 | 11 | // maximum number of seconds between resets that 12 | // counts as a double reset 13 | #define DRD_TIMEOUT 2.0 14 | 15 | // address to the block in the RTC user memory 16 | // change it if it collides with another usage 17 | // of the address block 18 | #define DRD_ADDRESS 0x00 19 | 20 | DoubleResetDetect drd(DRD_TIMEOUT, DRD_ADDRESS); 21 | 22 | void setup() 23 | { 24 | Serial.begin(74880); 25 | 26 | Serial.println(); 27 | Serial.println("***************************************"); 28 | Serial.println("* Minimal double reset detect example *"); 29 | Serial.println("***************************************"); 30 | Serial.println(); 31 | 32 | if (drd.detect()) 33 | { 34 | Serial.println("** Double reset boot **"); 35 | } 36 | else 37 | { 38 | Serial.println("** Normal boot **"); 39 | } 40 | } 41 | 42 | void loop() 43 | { 44 | // do stuff here 45 | } -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/DoubleResetDetect/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For DoubleResetDetect 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | DoubleResetDetect KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | detect KEYWORD2 16 | 17 | ####################################### 18 | # Instances (KEYWORD2) 19 | ####################################### 20 | 21 | ####################################### 22 | # Constants (LITERAL1) 23 | ####################################### -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/DoubleResetDetect/library.properties: -------------------------------------------------------------------------------- 1 | name=DoubleResetDetect 2 | version=1.0.0 3 | author=Jens-Christian Skibakk 4 | maintainer=Jens-Christian Skibakk 5 | sentence=Arduino library to check for double reset on ESP8266 6 | paragraph=This library gives one a opportunity to support a alternative boot mode. E.g. configuring WiFi using WiFiManager 7 | category=Device Control 8 | url=https://github.com/jenscski/DoubleResetDetect 9 | architectures=esp8266 10 | includes=DoubleResetDetect.h 11 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/DoubleResetDetect/src/DoubleResetDetect.cpp: -------------------------------------------------------------------------------- 1 | /* DoubleResetDetect.cpp 2 | * 3 | * Copyright (C) 2018 Jens-Christian Skibakk 4 | * 5 | * This software may be modified and distributed under the terms 6 | * of the MIT license. See the LICENSE file for details. 7 | */ 8 | 9 | #include 10 | 11 | DoubleResetDetect::DoubleResetDetect(float timeout, uint32_t address) 12 | : _timeout(timeout) 13 | , _address(address) 14 | , _status(-1) 15 | { 16 | } 17 | 18 | bool DoubleResetDetect::detect() 19 | { 20 | if (_status < 0) 21 | { 22 | uint32_t data; 23 | ESP.rtcUserMemoryRead(_address, &data, sizeof(data)); 24 | _status = data == 0xAAAAAAAA ? 1 : 0; 25 | 26 | if (_status == 1) 27 | { 28 | clearFlag(_address); 29 | } 30 | else 31 | { 32 | data = 0xAAAAAAAA; 33 | ESP.rtcUserMemoryWrite(_address, &data, sizeof(data)); 34 | 35 | _ticker.once(_timeout, clearFlag, _address); 36 | } 37 | } 38 | 39 | return _status == 1; 40 | } 41 | 42 | void DoubleResetDetect::clearFlag(const uint32_t address) 43 | { 44 | uint32_t data = 0x5555555; 45 | ESP.rtcUserMemoryWrite(address, &data, sizeof(data)); 46 | } 47 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/DoubleResetDetect/src/DoubleResetDetect.h: -------------------------------------------------------------------------------- 1 | /* DoubleResetDetect.cpp 2 | * 3 | * Copyright (C) 2018 Jens-Christian Skibakk 4 | * 5 | * This software may be modified and distributed under the terms 6 | * of the MIT license. See the LICENSE file for details. 7 | */ 8 | 9 | #include 10 | #include 11 | 12 | class DoubleResetDetect 13 | { 14 | public: 15 | // Constructor 16 | DoubleResetDetect(float, uint32_t); 17 | 18 | // Functions 19 | bool detect(void); 20 | 21 | private: 22 | // Variables 23 | float _timeout; 24 | uint32_t _address; 25 | int8_t _status; 26 | Ticker _ticker; 27 | 28 | // Functions 29 | static void clearFlag(uint32_t address); 30 | }; 31 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/SHT3x-master/examples/Absolute_Humidity/Absolute_Humidity.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * Processes in Nature (not the journal) does not takes _relative_ humidity into account. 3 | * They takes into account _absolute_ humidity (water vapor pressure). 4 | * So, that library supports vapor pressure calculation. 5 | * All pressure scales I found in Wikipedia are available: 6 | * mmHg, Torr, 7 | Pa, Bar, 8 | At (Techical atmosphere), 9 | Atm (Standart atmosphere), 10 | mH2O, //O is the letter, not zero 11 | psi, 12 | * (check SHT3x.h, "enum AbsHumidityScale"). 13 | * The absolute humidity tolerance could be recieved in same scales too. 14 | */ 15 | 16 | 17 | #include 18 | SHT3x Sensor; 19 | void setup() { 20 | 21 | Serial.begin(19200); 22 | Sensor.Begin(); 23 | } 24 | 25 | void loop() { 26 | Sensor.UpdateData(); 27 | 28 | Serial.print(Sensor.GetTemperature()); //Celsius 29 | Serial.write("\xC2\xB0"); //The Degree symbol 30 | Serial.print("C"); 31 | Serial.print(" | "); 32 | 33 | Serial.print(Sensor.GetRelHumidity()); 34 | Serial.print("%"); 35 | Serial.print(" | "); 36 | 37 | Serial.print(Sensor.GetAbsHumidity()); //Torr by default 38 | Serial.print(" Torr"); 39 | Serial.print(" | "); 40 | 41 | Serial.print(Sensor.GetAbsHumidity(SHT3x::psi)); //Torr by default 42 | Serial.print(" psi"); 43 | Serial.print(" | "); 44 | 45 | Serial.print(Sensor.GetAbsHumidity(SHT3x::Pa)); //Torr by default 46 | Serial.print(" Pa"); 47 | 48 | //And other... 49 | 50 | Serial.print(" Tolerance: ±"); 51 | Serial.print(Sensor.GetAbsHumTolerance(SHT3x::mH2O)); 52 | Serial.print(" mH2O"); 53 | 54 | 55 | Serial.println(); 56 | delay(333); 57 | } 58 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/SHT3x-master/examples/Data_Update_speed/Data_Update_speed.ino: -------------------------------------------------------------------------------- 1 | /*\ 2 | * Changing data update frequency (check for Note 1 in SHT3x.h) 3 | */ 4 | 5 | 6 | #include 7 | SHT3x Sensor_FAST; 8 | SHT3x Sensor_SLOW(0x45); //Set the address by hands 9 | void setup() { 10 | 11 | Serial.begin(19200); 12 | Sensor_FAST.SetUpdateInterval(100); //Data will be updated 10 times per seconds 13 | Sensor_SLOW.SetUpdateInterval(10*1000); //Data will be updated 1 time per 10 seconds 14 | Sensor_FAST.Begin(); 15 | Sensor_SLOW.Begin(); 16 | } 17 | 18 | void loop() { 19 | 20 | Sensor_FAST.UpdateData(); 21 | Sensor_SLOW.UpdateData(); 22 | 23 | Serial.println("Temperature, \xC2\xB0C"); 24 | Serial.print("F: "); Serial.print(Sensor_FAST.GetTemperature(),2); 25 | Serial.print(" | "); 26 | Serial.print("S: "); Serial.print(Sensor_SLOW.GetTemperature(),2); 27 | Serial.println(); 28 | 29 | Serial.println("Relative Humidity, %"); 30 | Serial.print("F: "); Serial.print(Sensor_FAST.GetRelHumidity(),2); 31 | Serial.print(" | "); 32 | Serial.print("S: "); Serial.print(Sensor_SLOW.GetRelHumidity(),2); 33 | delay(333); 34 | } 35 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/SHT3x-master/examples/Operation_modes/Operation_modes.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * Different data acquisition modes. 3 | * The repeatability affects on measurment duration (datasheet/section 2.2): 4 | * Low -> 2.5 ms 5 | * Medium -> 4.5 ms 6 | * High -> 12.5 ms 7 | */ 8 | 9 | #include 10 | 11 | SHT3x Sensor_H(0x44); //Set the sensor address for HIGH repeatablity 12 | //SHT3x Sensor_L(0x45,SHT3x::Single_LowRep_ClockStretch); //The repeatability is not often usable option, 13 | //I think, so I put it to the end of constuctor. So, because we need to define all options, let's do it: 14 | SHT3x Sensor_L( 0x45, //Set the address 15 | SHT3x::Zero, //Functions will return zeros in case of error 16 | 255, //If you DID NOT connected RESET pin 17 | SHT3x::SHT30, //Sensor type 18 | SHT3x::Single_LowRep_ClockStretch //Low repetability mode 19 | ); 20 | 21 | 22 | void setup() { 23 | Serial.begin(19200); 24 | Sensor_H.Begin(); 25 | Sensor_L.Begin(); 26 | 27 | } 28 | 29 | void loop() { 30 | Sensor_H.UpdateData(); 31 | Sensor_L.UpdateData(); 32 | Serial.println("Temperature, \xC2\xB0C"); 33 | Serial.print("H: "); Serial.print(Sensor_H.GetTemperature(),2); 34 | Serial.print(" | "); 35 | Serial.print("L: "); Serial.print(Sensor_L.GetTemperature(),2); 36 | Serial.println(); 37 | 38 | Serial.println("Relative Humidity, %"); 39 | Serial.print("H: "); Serial.print(Sensor_H.GetRelHumidity(),2); 40 | Serial.print(" | "); 41 | Serial.print("L: "); Serial.print(Sensor_L.GetRelHumidity(),2); 42 | delay(333); 43 | } 44 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/SHT3x-master/examples/Simple_operation/Simple_operation.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * The simplest operation using SHT3x 3 | */ 4 | 5 | 6 | #include 7 | SHT3x Sensor; 8 | void setup() { 9 | 10 | Serial.begin(19200); 11 | Sensor.Begin(); 12 | } 13 | 14 | void loop() { 15 | 16 | Sensor.UpdateData(); 17 | Serial.print("Temperature: "); 18 | Serial.print(Sensor.GetTemperature()); 19 | Serial.write("\xC2\xB0"); //The Degree symbol 20 | Serial.println("C"); 21 | Serial.print("Humidity: "); 22 | Serial.print(Sensor.GetRelHumidity()); 23 | Serial.println("%"); 24 | 25 | delay(333); 26 | } 27 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/SHT3x-master/examples/Temperature_Scales/Temperature_Scales.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 temperature scales are available: 3 | * Celsius (default) 4 | * Fahrenheit 5 | * Kelvin 6 | */ 7 | 8 | 9 | #include 10 | SHT3x Sensor; 11 | void setup() { 12 | 13 | Serial.begin(19200); 14 | Sensor.Begin(); 15 | } 16 | 17 | void loop() { 18 | Sensor.UpdateData(); 19 | 20 | Serial.print(Sensor.GetTemperature()); //Celsius 21 | Serial.write("\xC2\xB0"); //The Degree symbol 22 | Serial.print("C"); 23 | Serial.print(" | "); 24 | 25 | Serial.print(Sensor.GetTemperature(SHT3x::Cel)); //Celsius again 26 | Serial.write("\xC2\xB0"); //The Degree symbol 27 | Serial.print("C"); 28 | Serial.print(" | "); 29 | 30 | Serial.print(Sensor.GetTemperature(SHT3x::Far)); //Fahrenheit 31 | Serial.write("\xC2\xB0"); //The Degree symbol 32 | Serial.print("F"); 33 | Serial.print(" | "); 34 | 35 | Serial.print(Sensor.GetTemperature(SHT3x::Kel)); //Kelvin again 36 | Serial.write("\xC2\xB0"); //The Degree symbol 37 | Serial.print("K"); 38 | 39 | 40 | Serial.println(); 41 | delay(333); 42 | } 43 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/SHT3x-master/examples/Tolerances/Tolerances.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * Sometimes you are interesting not in the only values of measurable parameters, 3 | * but in their tolerances too. 4 | * This library supports tolerances for temperature, relative and absolute humidity 5 | * in all scales you can found in corresponding examples. 6 | * 7 | * Tolerances are in dependence from ambient temperature and humidity and sensor model. 8 | * Accuracy grows with a sensor model number: SHT30 15 | SHT3x Sensor; //The default sensor type is SHT30 16 | void setup() { 17 | 18 | Serial.begin(19200); 19 | Sensor.Begin(); 20 | } 21 | 22 | void loop() { 23 | Sensor.UpdateData(); 24 | Serial.print("Temperature: "); 25 | Serial.print(Sensor.GetTemperature(),1); //Celsius 26 | Serial.print(" ± "); 27 | Serial.print(Sensor.GetTempTolerance(),1); 28 | Serial.write("\xC2\xB0"); //The Degree symbol 29 | Serial.print("C"); 30 | 31 | Serial.println(); 32 | 33 | Serial.print("Relative humidity: "); 34 | Serial.print(Sensor.GetRelHumidity(),1); 35 | Serial.print(" ± "); 36 | Serial.print(Sensor.GetRelHumTolerance(),1); 37 | Serial.print("%"); 38 | 39 | Serial.println(); 40 | 41 | Serial.print("Absolute humidity: "); 42 | Serial.print(Sensor.GetAbsHumidity(SHT3x::Pa),1); //Pascal, for example 43 | Serial.print(" ± "); 44 | Serial.print(Sensor.GetAbsHumTolerance(SHT3x::Pa),1); 45 | Serial.print(" Pa"); 46 | 47 | Serial.println(); 48 | delay(333); 49 | } 50 | -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/SHT3x-master/keywords.txt: -------------------------------------------------------------------------------- 1 | SHT3x KEYWORD1 2 | Begin KEYWORD2 3 | UpdateData KEYWORD2 4 | GetTemperature KEYWORD2 5 | GetRelHumidity KEYWORD2 6 | GetAbsHumidity KEYWORD2 7 | GetTempTolerance KEYWORD2 8 | GetRelHumTolerance KEYWORD2 9 | GetAbsHumTolerance KEYWORD2 10 | GetError KEYWORD2 11 | SetMode KEYWORD2 12 | SetTemperatureCalibrationFactors KEYWORD2 13 | SetRelHumidityCalibrationFactors KEYWORD2 14 | SetTemperatureCalibrationPoints KEYWORD2 15 | SetRelHumidutyCalibrationPoints KEYWORD2 16 | SoftReset KEYWORD2 17 | HardReset KEYWORD2 18 | HeaterOn KEYWORD2 19 | HeaterOff KEYWORD2 20 | SetAddress KEYWORD2 21 | SetUpdateInterval KEYWORD2 22 | SetTimeout KEYWORD2 23 | ValueIfError KEYWORD2 24 | SHT3xMode KEYWORD2 25 | SHT3xSensor KEYWORD2 26 | TemperatureScale KEYWORD2 27 | AbsHumidityScale KEYWORD2 28 | CalibrationPoints KEYWORD2 29 | CalibrationFactors KEYWORD2 -------------------------------------------------------------------------------- /.pio/libdeps/nodemcuv2/integrity.dat: -------------------------------------------------------------------------------- 1 | 566 2 | SPI 3 | 5426 4 | BME280_Light -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "platformio.platformio-ide" 6 | ], 7 | "unwantedRecommendations": [ 8 | "ms-vscode.cpptools-extension-pack" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2019, Stephan Mühl 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | * Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | * Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /_travis.yml: -------------------------------------------------------------------------------- 1 | # Continuous Integration (CI) is the practice, in software 2 | # engineering, of merging all developer working copies with a shared mainline 3 | # several times a day < https://docs.platformio.org/page/ci/index.html > 4 | # 5 | # Documentation: 6 | # 7 | # * Travis CI Embedded Builds with PlatformIO 8 | # < https://docs.travis-ci.com/user/integration/platformio/ > 9 | # 10 | # * PlatformIO integration with Travis CI 11 | # < https://docs.platformio.org/page/ci/travis.html > 12 | # 13 | # * User Guide for `platformio ci` command 14 | # < https://docs.platformio.org/page/userguide/cmd_ci.html > 15 | # 16 | # 17 | # Please choose one of the following templates (proposed below) and uncomment 18 | # it (remove "# " before each line) or use own configuration according to the 19 | # Travis CI documentation (see above). 20 | # 21 | 22 | 23 | # 24 | # Template #1: General project. Test it using existing `platformio.ini`. 25 | # 26 | 27 | # language: python 28 | # python: 29 | # - "2.7" 30 | # 31 | # sudo: false 32 | # cache: 33 | # directories: 34 | # - "~/.platformio" 35 | # 36 | # install: 37 | # - pip install -U platformio 38 | # - platformio update 39 | # 40 | # script: 41 | # - platformio run 42 | 43 | 44 | # 45 | # Template #2: The project is intended to be used as a library with examples. 46 | # 47 | 48 | # language: python 49 | # python: 50 | # - "2.7" 51 | # 52 | # sudo: false 53 | # cache: 54 | # directories: 55 | # - "~/.platformio" 56 | # 57 | # env: 58 | # - PLATFORMIO_CI_SRC=path/to/test/file.c 59 | # - PLATFORMIO_CI_SRC=examples/file.ino 60 | # - PLATFORMIO_CI_SRC=path/to/test/directory 61 | # 62 | # install: 63 | # - pip install -U platformio 64 | # - platformio update 65 | # 66 | # script: 67 | # - platformio ci --lib="." --board=ID_1 --board=ID_2 --board=ID_N 68 | -------------------------------------------------------------------------------- /dfplayer文件目录.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/dfplayer文件目录.rar -------------------------------------------------------------------------------- /lib/APDS9960/.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /lib/APDS9960/LICENSE.md: -------------------------------------------------------------------------------- 1 | 2 | License Information 3 | ------------------- 4 | 5 | The hardware is released under [Creative Commons Share-alike 3.0](http://creativecommons.org/licenses/by-sa/3.0/). 6 | 7 | All other code is open source so please feel free to do anything you want with it; you buy me a beer if you use this and we meet someday ([Beerware license](http://en.wikipedia.org/wiki/Beerware)). 8 | 9 | 10 | -------------------------------------------------------------------------------- /lib/APDS9960/README.md: -------------------------------------------------------------------------------- 1 | SparkFun APDS9960 RGB and Gesture Sensor Arduino Library -- Modified for esp8266 2 | ========================================================= 3 | 4 | Made a few changes to get this to work with esp8266. 5 | 6 | The main two are: 7 | * Removing wire.begin() from SparkFun_APDS9960.cpp and moving it into the examples so that the pins it uses can be specified in your sketch 8 | 9 | * Changed the LED_BOOST_300 to LED_BOOST_100 in SparkFun_APDS9960.cpp as I couldn't get the gesture sensor to work without changing this 10 | 11 | See Sparkfun's original library here https://github.com/sparkfun/SparkFun_APDS-9960_Sensor_Arduino_Library for usage. 12 | -------------------------------------------------------------------------------- /lib/APDS9960/library.properties: -------------------------------------------------------------------------------- 1 | name=SparkFun APDS9960 RGB and Gesture Sensor 2 | version=1.4.2 3 | author=SparkFun Electronics 4 | maintainer=SparkFun Electronics 5 | sentence=Library for the Avago APDS-9960 sensor 6 | paragraph=This library works with the SparkFun Breakout board for the Avago APDS-9960 proximity, light, RGB, and gesture sensor, made by SparkFun Electronics. 7 | category=Sensors 8 | url=https://github.com/sparkfun/SparkFun_APDS-9960_Sensor_Arduino_Library 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/APDS9960/src/README.md: -------------------------------------------------------------------------------- 1 | This folder should contain the .cpp and .h files for the library. 2 | 3 | If backward compatibility is needed, source code should be placed in the library root folder and in a "utilyt" folder. 4 | 5 | Check out the [library specification](https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification) for more details. -------------------------------------------------------------------------------- /lib/Adafruit_GFX/.gitignore: -------------------------------------------------------------------------------- 1 | default.vim 2 | fontconvert/fontconvert 3 | -------------------------------------------------------------------------------- /lib/Adafruit_GFX/fontconvert/Makefile: -------------------------------------------------------------------------------- 1 | all: fontconvert 2 | 3 | CC = gcc 4 | CFLAGS = -Wall -I/usr/local/include/freetype2 -I/usr/include/freetype2 -I/usr/include 5 | LIBS = -lfreetype 6 | 7 | fontconvert: fontconvert.c 8 | $(CC) $(CFLAGS) $< $(LIBS) -o $@ 9 | strip $@ 10 | 11 | clean: 12 | rm -f fontconvert 13 | -------------------------------------------------------------------------------- /lib/Adafruit_GFX/fontconvert/makefonts.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Ugly little Bash script, generates a set of .h files for GFX using 4 | # GNU FreeFont sources. There are three fonts: 'Mono' (Courier-like), 5 | # 'Sans' (Helvetica-like) and 'Serif' (Times-like); four styles: regular, 6 | # bold, oblique or italic, and bold+oblique or bold+italic; and four 7 | # sizes: 9, 12, 18 and 24 point. No real error checking or anything, 8 | # this just powers through all the combinations, calling the fontconvert 9 | # utility and redirecting the output to a .h file for each combo. 10 | 11 | # Adafruit_GFX repository does not include the source outline fonts 12 | # (huge zipfile, different license) but they're easily acquired: 13 | # http://savannah.gnu.org/projects/freefont/ 14 | 15 | convert=./fontconvert 16 | inpath=~/Desktop/freefont/ 17 | outpath=../Fonts/ 18 | fonts=(FreeMono FreeSans FreeSerif) 19 | styles=("" Bold Italic BoldItalic Oblique BoldOblique) 20 | sizes=(9 12 18 24) 21 | 22 | for f in ${fonts[*]} 23 | do 24 | for index in ${!styles[*]} 25 | do 26 | st=${styles[$index]} 27 | for si in ${sizes[*]} 28 | do 29 | infile=$inpath$f$st".ttf" 30 | if [ -f $infile ] # Does source combination exist? 31 | then 32 | outfile=$outpath$f$st$si"pt7b.h" 33 | # printf "%s %s %s > %s\n" $convert $infile $si $outfile 34 | $convert $infile $si > $outfile 35 | fi 36 | done 37 | done 38 | done 39 | -------------------------------------------------------------------------------- /lib/Adafruit_GFX/gfxfont.h: -------------------------------------------------------------------------------- 1 | // Font structures for newer Adafruit_GFX (1.1 and later). 2 | // Example fonts are included in 'Fonts' directory. 3 | // To use a font in your Arduino sketch, #include the corresponding .h 4 | // file and pass address of GFXfont struct to setFont(). Pass NULL to 5 | // revert to 'classic' fixed-space bitmap font. 6 | 7 | #ifndef _GFXFONT_H_ 8 | #define _GFXFONT_H_ 9 | 10 | typedef struct { // Data stored PER GLYPH 11 | uint16_t bitmapOffset; // Pointer into GFXfont->bitmap 12 | uint8_t width, height; // Bitmap dimensions in pixels 13 | uint8_t xAdvance; // Distance to advance cursor (x axis) 14 | int8_t xOffset, yOffset; // Dist from cursor pos to UL corner 15 | } GFXglyph; 16 | 17 | typedef struct { // Data stored for FONT AS A WHOLE: 18 | uint8_t *bitmap; // Glyph bitmaps, concatenated 19 | GFXglyph *glyph; // Glyph array 20 | uint8_t first, last; // ASCII extents 21 | uint8_t yAdvance; // Newline distance (y axis) 22 | } GFXfont; 23 | 24 | #endif // _GFXFONT_H_ 25 | -------------------------------------------------------------------------------- /lib/Adafruit_GFX/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit GFX Library 2 | version=1.2.3 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Adafruit GFX graphics core library, this is the 'core' class that all our other graphics libraries derive from. 6 | paragraph=Install this library in addition to the display library for your hardware. 7 | category=Display 8 | url=https://github.com/adafruit/Adafruit-GFX-Library 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Adafruit_GFX/license.txt: -------------------------------------------------------------------------------- 1 | Software License Agreement (BSD License) 2 | 3 | Copyright (c) 2012 Adafruit Industries. All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | 8 | - Redistributions of source code must retain the above copyright notice, 9 | this list of conditions and the following disclaimer. 10 | - Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 18 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 | POSSIBILITY OF SUCH DAMAGE. 25 | -------------------------------------------------------------------------------- /lib/Adafruit_NeoPixel/.library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Adafruit NeoPixel", 3 | "version": "1.1.8", 4 | "keywords": [ 5 | "display" 6 | ], 7 | "description": "Arduino library for controlling single-wire-based LED pixels and strip.", 8 | "frameworks": [ 9 | "arduino" 10 | ], 11 | "platforms": [ 12 | "atmelavr", 13 | "atmelsam", 14 | "espressif32", 15 | "espressif8266", 16 | "intel_arc32", 17 | "microchippic32", 18 | "nordicnrf51", 19 | "nordicnrf52", 20 | "ststm32", 21 | "ststm8", 22 | "teensy", 23 | "timsp430" 24 | ], 25 | "authors": [ 26 | { 27 | "email": "info@adafruit.com", 28 | "url": null, 29 | "maintainer": true, 30 | "name": "Adafruit" 31 | } 32 | ], 33 | "repository": { 34 | "type": "git", 35 | "url": "https://github.com/adafruit/Adafruit_NeoPixel" 36 | }, 37 | "homepage": null, 38 | "export": { 39 | "include": null, 40 | "exclude": [ 41 | "extras", 42 | "docs", 43 | "tests", 44 | "test", 45 | "*.doxyfile", 46 | "*.pdf" 47 | ] 48 | }, 49 | "id": 28 50 | } -------------------------------------------------------------------------------- /lib/Adafruit_NeoPixel/.travis.yml: -------------------------------------------------------------------------------- 1 | language: c 2 | sudo: false 3 | cache: 4 | directories: 5 | - ~/arduino_ide 6 | - ~/.arduino15/packages/ 7 | git: 8 | depth: false 9 | quiet: true 10 | env: 11 | global: 12 | - ARDUINO_IDE_VERSION="1.8.7" 13 | - PRETTYNAME="Adafruit NeoPixel" 14 | # Optional, will default to "$TRAVIS_BUILD_DIR/Doxyfile" 15 | # - DOXYFILE: $TRAVIS_BUILD_DIR/Doxyfile 16 | 17 | before_install: 18 | - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/install.sh) 19 | 20 | script: 21 | - build_main_platforms 22 | - build_platform trinket 23 | 24 | notifications: 25 | email: 26 | on_success: change 27 | on_failure: change 28 | 29 | # Generate and deploy documentation 30 | #after_success: 31 | # - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/library_check.sh) 32 | # - source <(curl -SLs https://raw.githubusercontent.com/adafruit/travis-ci-arduino/master/doxy_gen_and_deploy.sh) 33 | -------------------------------------------------------------------------------- /lib/Adafruit_NeoPixel/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For Adafruit_NeoPixel 3 | ####################################### 4 | # Class 5 | ####################################### 6 | 7 | Adafruit_NeoPixel KEYWORD1 8 | 9 | ####################################### 10 | # Methods and Functions 11 | ####################################### 12 | 13 | setPixelColor KEYWORD2 14 | setPin KEYWORD2 15 | setBrightness KEYWORD2 16 | numPixels KEYWORD2 17 | getPixelColor KEYWORD2 18 | Color KEYWORD2 19 | show KEYWORD2 20 | 21 | clear KEYWORD2 22 | updateLength KEYWORD2 23 | updateType KEYWORD2 24 | getPixels KEYWORD2 25 | getBrightness KEYWORD2 26 | getPin KEYWORD2 27 | canShow KEYWORD2 28 | 29 | 30 | ####################################### 31 | # Constants 32 | ####################################### 33 | 34 | NEO_COLMASK LITERAL1 35 | NEO_SPDMASK LITERAL1 36 | NEO_KHZ800 LITERAL1 37 | NEO_KHZ400 LITERAL1 38 | NEO_RGB LITERAL1 39 | NEO_RBG LITERAL1 40 | NEO_GRB LITERAL1 41 | NEO_GBR LITERAL1 42 | NEO_BRG LITERAL1 43 | NEO_BGR LITERAL1 44 | NEO_WRGB LITERAL1 45 | NEO_WRBG LITERAL1 46 | NEO_WGRB LITERAL1 47 | NEO_WGBR LITERAL1 48 | NEO_WBRG LITERAL1 49 | NEO_WBGR LITERAL1 50 | NEO_RWGB LITERAL1 51 | NEO_RWBG LITERAL1 52 | NEO_RGWB LITERAL1 53 | NEO_RGBW LITERAL1 54 | NEO_RBWG LITERAL1 55 | NEO_RBGW LITERAL1 56 | NEO_GWRB LITERAL1 57 | NEO_GWBR LITERAL1 58 | NEO_GRWB LITERAL1 59 | NEO_GRBW LITERAL1 60 | NEO_GBWR LITERAL1 61 | NEO_GBRW LITERAL1 62 | NEO_BWRG LITERAL1 63 | NEO_BWGR LITERAL1 64 | NEO_BRWG LITERAL1 65 | NEO_BRGW LITERAL1 66 | NEO_BGWR LITERAL1 67 | NEO_BGRW LITERAL1 68 | 69 | -------------------------------------------------------------------------------- /lib/Adafruit_NeoPixel/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit NeoPixel 2 | version=1.1.8 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Arduino library for controlling single-wire-based LED pixels and strip. 6 | paragraph=Arduino library for controlling single-wire-based LED pixels and strip. 7 | category=Display 8 | url=https://github.com/adafruit/Adafruit_NeoPixel 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/Adafruit_Unified_Sensor/library.properties: -------------------------------------------------------------------------------- 1 | name=Adafruit Unified Sensor 2 | version=1.1.4 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Required for all Adafruit Unified Sensor based libraries. 6 | paragraph=A unified sensor abstraction layer used by many Adafruit sensor libraries. 7 | category=Sensors 8 | url=https://github.com/adafruit/Adafruit_Sensor 9 | architectures=* 10 | includes=Adafruit_Sensor.h 11 | 12 | -------------------------------------------------------------------------------- /lib/ArduinoJson/.clang-format: -------------------------------------------------------------------------------- 1 | # http://clang.llvm.org/docs/ClangFormatStyleOptions.html 2 | 3 | BasedOnStyle: Google 4 | Standard: Cpp03 5 | AllowShortFunctionsOnASingleLine: Empty 6 | -------------------------------------------------------------------------------- /lib/ArduinoJson/.gitattributes: -------------------------------------------------------------------------------- 1 | *.sh text eol=lf -------------------------------------------------------------------------------- /lib/ArduinoJson/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.idea 3 | /build 4 | /bin 5 | /lib 6 | /sftp-config.json 7 | .tags 8 | .tags_sorted_by_file 9 | /fuzzing/*_fuzzer 10 | /fuzzing/*_fuzzer.options 11 | /fuzzing/*_fuzzer_seed_corpus.zip 12 | -------------------------------------------------------------------------------- /lib/ArduinoJson/.library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ArduinoJson", 3 | "keywords": [ 4 | "json", 5 | "rest", 6 | "http", 7 | "web" 8 | ], 9 | "description": "An elegant and efficient JSON library for embedded systems", 10 | "homepage": "https://arduinojson.org/?utm_source=meta&utm_medium=library.json", 11 | "repository": { 12 | "type": "git", 13 | "url": "https://github.com/bblanchon/ArduinoJson.git" 14 | }, 15 | "version": "5.13.4", 16 | "authors": [ 17 | { 18 | "email": null, 19 | "url": "https://blog.benoitblanchon.fr", 20 | "maintainer": false, 21 | "name": "Benoit Blanchon" 22 | } 23 | ], 24 | "frameworks": [ 25 | "arduino" 26 | ], 27 | "platforms": [ 28 | "atmelavr", 29 | "atmelsam", 30 | "espressif32", 31 | "espressif8266", 32 | "intel_arc32", 33 | "microchippic32", 34 | "nordicnrf51", 35 | "nordicnrf52", 36 | "ststm32", 37 | "teensy", 38 | "timsp430" 39 | ], 40 | "export": { 41 | "exclude": [ 42 | "fuzzing", 43 | "scripts", 44 | "test", 45 | "third-party" 46 | ] 47 | }, 48 | "id": 64 49 | } -------------------------------------------------------------------------------- /lib/ArduinoJson/.mbedignore: -------------------------------------------------------------------------------- 1 | .github/ 2 | examples/ 3 | fuzzing/ 4 | scripts/ 5 | test/ 6 | third-party/ 7 | -------------------------------------------------------------------------------- /lib/ArduinoJson/ArduinoJson.h: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #include "src/ArduinoJson.h" 6 | -------------------------------------------------------------------------------- /lib/ArduinoJson/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # ArduinoJson - arduinojson.org 2 | # Copyright Benoit Blanchon 2014-2018 3 | # MIT License 4 | 5 | cmake_minimum_required(VERSION 3.0) 6 | project(ArduinoJson) 7 | 8 | enable_testing() 9 | 10 | if(${COVERAGE}) 11 | set(CMAKE_CXX_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage") 12 | endif() 13 | 14 | include_directories(${CMAKE_CURRENT_LIST_DIR}/src) 15 | add_subdirectory(third-party/catch) 16 | add_subdirectory(test) 17 | -------------------------------------------------------------------------------- /lib/ArduinoJson/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution to ArduinoJson 2 | 3 | First, thank you for taking the time to contribute to this project. 4 | 5 | You can submit changes via GitHub Pull Requests. 6 | 7 | Please: 8 | 9 | 1. Unit test every change in behavior 10 | 2. Use clang-format in "file" mode to format the code 11 | 3. Consider using the Continuous Integration (Travis and AppVeyor) 12 | -------------------------------------------------------------------------------- /lib/ArduinoJson/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | --------------------- 3 | 4 | Copyright © 2014-2018 Benoit BLANCHON 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 7 | 8 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 9 | 10 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 11 | -------------------------------------------------------------------------------- /lib/ArduinoJson/SUPPORT.md: -------------------------------------------------------------------------------- 1 | # ArduinoJson Support 2 | 3 | First off, thank you very much for using ArduinoJson. 4 | 5 | We'll be very happy to help you, but first please read the following. 6 | 7 | ## Before asking for help 8 | 9 | 1. Read the [FAQ](https://arduinojson.org/faq/?utm_source=github&utm_medium=support) 10 | 2. Search in the [API Reference](https://arduinojson.org/api/?utm_source=github&utm_medium=support) 11 | 12 | If you did not find the answer, please create a [new issue on GitHub](https://github.com/bblanchon/ArduinoJson/issues/new). 13 | 14 | It is OK to add a comment to a currently opened issue, but please avoid adding comments to a closed issue. 15 | 16 | ## Before hitting the Submit button 17 | 18 | Please provide all the relevant information: 19 | 20 | * Good title 21 | * Short description of the problem 22 | * Target platform 23 | * Compiler model and version 24 | * [MVCE](https://stackoverflow.com/help/mcve) 25 | * Compiler output 26 | 27 | Good questions get fast answers! 28 | -------------------------------------------------------------------------------- /lib/ArduinoJson/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 5.13.4.{build} 2 | environment: 3 | matrix: 4 | - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 5 | CMAKE_GENERATOR: Visual Studio 15 2017 6 | - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 7 | CMAKE_GENERATOR: Visual Studio 14 2015 8 | - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 9 | CMAKE_GENERATOR: Visual Studio 12 2013 10 | - CMAKE_GENERATOR: Visual Studio 11 2012 11 | - CMAKE_GENERATOR: Visual Studio 10 2010 12 | - CMAKE_GENERATOR: MinGW Makefiles 13 | configuration: Debug 14 | before_build: 15 | - set PATH=C:\MinGW\bin;%PATH:C:\Program Files\Git\usr\bin;=% # Workaround for CMake not wanting sh.exe on PATH for MinGW 16 | - cmake -DCMAKE_BUILD_TYPE=%CONFIGURATION% -G "%CMAKE_GENERATOR%" . 17 | build_script: 18 | - cmake --build . --config %CONFIGURATION% 19 | test_script: 20 | - ctest --output-on-failure . 21 | -------------------------------------------------------------------------------- /lib/ArduinoJson/keywords.txt: -------------------------------------------------------------------------------- 1 | JsonArray KEYWORD1 2 | JsonObject KEYWORD1 3 | JsonVariant KEYWORD1 4 | StaticJsonBuffer KEYWORD1 5 | DynamicJsonBuffer KEYWORD1 6 | add KEYWORD2 7 | createArray KEYWORD2 8 | createNestedArray KEYWORD2 9 | createNestedObject KEYWORD2 10 | createObject KEYWORD2 11 | parseArray KEYWORD2 12 | parseObject KEYWORD2 13 | prettyPrintTo KEYWORD2 14 | printTo KEYWORD2 15 | success KEYWORD2 16 | -------------------------------------------------------------------------------- /lib/ArduinoJson/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ArduinoJson", 3 | "keywords": "json, rest, http, web", 4 | "description": "An elegant and efficient JSON library for embedded systems", 5 | "homepage": "https://arduinojson.org/?utm_source=meta&utm_medium=library.json", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/bblanchon/ArduinoJson.git" 9 | }, 10 | "version": "5.13.4", 11 | "authors": { 12 | "name": "Benoit Blanchon", 13 | "url": "https://blog.benoitblanchon.fr" 14 | }, 15 | "exclude": [ 16 | "fuzzing", 17 | "scripts", 18 | "test", 19 | "third-party" 20 | ], 21 | "frameworks": "arduino", 22 | "platforms": "*" 23 | } 24 | -------------------------------------------------------------------------------- /lib/ArduinoJson/library.properties: -------------------------------------------------------------------------------- 1 | name=ArduinoJson 2 | version=5.13.4 3 | author=Benoit Blanchon 4 | maintainer=Benoit Blanchon 5 | sentence=An efficient and elegant JSON library for Arduino. 6 | paragraph=ArduinoJson supports ✔ serialization, ✔ deserialization, ✔ fixed allocation, ✔ zero-copy, ✔ streams, and more. It is the most popular Arduino library on GitHub ❤❤❤❤❤. Check out arduinojson.org for a comprehensive documentation. 7 | category=Data Processing 8 | url=https://arduinojson.org/?utm_source=meta&utm_medium=library.properties 9 | architectures=* 10 | repository=https://github.com/bblanchon/ArduinoJson.git 11 | license=MIT 12 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson.h: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #ifdef __cplusplus 8 | 9 | #include "ArduinoJson.hpp" 10 | 11 | using namespace ArduinoJson; 12 | 13 | #else 14 | 15 | #error ArduinoJson requires a C++ compiler, please change file extension to .cc or .cpp 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "ArduinoJson/version.hpp" 8 | 9 | #include "ArduinoJson/DynamicJsonBuffer.hpp" 10 | #include "ArduinoJson/JsonArray.hpp" 11 | #include "ArduinoJson/JsonObject.hpp" 12 | #include "ArduinoJson/StaticJsonBuffer.hpp" 13 | 14 | #include "ArduinoJson/Deserialization/JsonParserImpl.hpp" 15 | #include "ArduinoJson/JsonArrayImpl.hpp" 16 | #include "ArduinoJson/JsonBufferImpl.hpp" 17 | #include "ArduinoJson/JsonObjectImpl.hpp" 18 | #include "ArduinoJson/JsonVariantImpl.hpp" 19 | #include "ArduinoJson/Serialization/JsonSerializerImpl.hpp" 20 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/Encoding.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | class Encoding { 11 | public: 12 | // Optimized for code size on a 8-bit AVR 13 | static char escapeChar(char c) { 14 | const char *p = escapeTable(false); 15 | while (p[0] && p[1] != c) { 16 | p += 2; 17 | } 18 | return p[0]; 19 | } 20 | 21 | // Optimized for code size on a 8-bit AVR 22 | static char unescapeChar(char c) { 23 | const char *p = escapeTable(true); 24 | for (;;) { 25 | if (p[0] == '\0') return c; 26 | if (p[0] == c) return p[1]; 27 | p += 2; 28 | } 29 | } 30 | 31 | private: 32 | static const char *escapeTable(bool excludeIdenticals) { 33 | return &"\"\"\\\\b\bf\fn\nr\rt\t"[excludeIdenticals ? 4 : 0]; 34 | } 35 | }; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/JsonBufferAllocated.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../JsonBuffer.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | class JsonBufferAllocated { 13 | public: 14 | void *operator new(size_t n, JsonBuffer *jsonBuffer) throw() { 15 | if (!jsonBuffer) return NULL; 16 | return jsonBuffer->alloc(n); 17 | } 18 | 19 | void operator delete(void *, JsonBuffer *)throw(); 20 | }; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/JsonFloat.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../Configuration.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | #if ARDUINOJSON_USE_DOUBLE 13 | typedef double JsonFloat; 14 | #else 15 | typedef float JsonFloat; 16 | #endif 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/JsonInteger.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../Configuration.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | #if ARDUINOJSON_USE_LONG_LONG 13 | typedef long long JsonInteger; 14 | typedef unsigned long long JsonUInt; 15 | #elif ARDUINOJSON_USE_INT64 16 | typedef __int64 JsonInteger; 17 | typedef unsigned _int64 JsonUInt; 18 | #else 19 | typedef long JsonInteger; 20 | typedef unsigned long JsonUInt; 21 | #endif 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/JsonVariantAs.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A metafunction that returns the type of the value returned by 11 | // JsonVariant::as() 12 | template 13 | struct JsonVariantAs { 14 | typedef T type; 15 | }; 16 | 17 | template <> 18 | struct JsonVariantAs { 19 | typedef const char* type; 20 | }; 21 | 22 | template <> 23 | struct JsonVariantAs { 24 | typedef JsonArray& type; 25 | }; 26 | 27 | template <> 28 | struct JsonVariantAs { 29 | typedef const JsonArray& type; 30 | }; 31 | 32 | template <> 33 | struct JsonVariantAs { 34 | typedef JsonObject& type; 35 | }; 36 | 37 | template <> 38 | struct JsonVariantAs { 39 | typedef const JsonObject& type; 40 | }; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/JsonVariantContent.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonFloat.hpp" 8 | #include "JsonInteger.hpp" 9 | 10 | namespace ArduinoJson { 11 | 12 | // Forward declarations 13 | class JsonArray; 14 | class JsonObject; 15 | 16 | namespace Internals { 17 | // A union that defines the actual content of a JsonVariant. 18 | // The enum JsonVariantType determines which member is in use. 19 | union JsonVariantContent { 20 | JsonFloat asFloat; // used for double and float 21 | JsonUInt asInteger; // used for bool, char, short, int and longs 22 | const char* asString; // asString can be null 23 | JsonArray* asArray; // asArray cannot be null 24 | JsonObject* asObject; // asObject cannot be null 25 | }; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/JsonVariantDefault.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | template 11 | struct JsonVariantDefault { 12 | static T get() { 13 | return T(); 14 | } 15 | }; 16 | 17 | template 18 | struct JsonVariantDefault : JsonVariantDefault {}; 19 | 20 | template 21 | struct JsonVariantDefault : JsonVariantDefault {}; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/JsonVariantType.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | class JsonArray; 9 | class JsonObject; 10 | 11 | namespace Internals { 12 | 13 | // Enumerated type to know the current type of a JsonVariant. 14 | // The value determines which member of JsonVariantContent is used. 15 | enum JsonVariantType { 16 | JSON_UNDEFINED, // JsonVariant has not been initialized 17 | JSON_UNPARSED, // JsonVariant contains an unparsed string 18 | JSON_STRING, // JsonVariant stores a const char* 19 | JSON_BOOLEAN, // JsonVariant stores a bool 20 | JSON_POSITIVE_INTEGER, // JsonVariant stores an JsonUInt 21 | JSON_NEGATIVE_INTEGER, // JsonVariant stores an JsonUInt that must be negated 22 | JSON_ARRAY, // JsonVariant stores a pointer to a JsonArray 23 | JSON_OBJECT, // JsonVariant stores a pointer to a JsonObject 24 | JSON_FLOAT // JsonVariant stores a JsonFloat 25 | }; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/ListConstIterator.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "ListNode.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | // A read-only forward itertor for List 13 | template 14 | class ListConstIterator { 15 | public: 16 | explicit ListConstIterator(const ListNode *node = NULL) : _node(node) {} 17 | 18 | const T &operator*() const { 19 | return _node->content; 20 | } 21 | const T *operator->() { 22 | return &_node->content; 23 | } 24 | 25 | bool operator==(const ListConstIterator &other) const { 26 | return _node == other._node; 27 | } 28 | 29 | bool operator!=(const ListConstIterator &other) const { 30 | return _node != other._node; 31 | } 32 | 33 | ListConstIterator &operator++() { 34 | if (_node) _node = _node->next; 35 | return *this; 36 | } 37 | 38 | ListConstIterator &operator+=(size_t distance) { 39 | while (_node && distance) { 40 | _node = _node->next; 41 | --distance; 42 | } 43 | return *this; 44 | } 45 | 46 | private: 47 | const ListNode *_node; 48 | }; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/ListIterator.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "ListConstIterator.hpp" 8 | #include "ListNode.hpp" 9 | 10 | namespace ArduinoJson { 11 | namespace Internals { 12 | 13 | template 14 | class List; 15 | 16 | // A read-write forward iterator for List 17 | template 18 | class ListIterator { 19 | friend class List; 20 | 21 | public: 22 | explicit ListIterator(ListNode *node = NULL) : _node(node) {} 23 | 24 | T &operator*() const { 25 | return _node->content; 26 | } 27 | T *operator->() { 28 | return &_node->content; 29 | } 30 | 31 | bool operator==(const ListIterator &other) const { 32 | return _node == other._node; 33 | } 34 | 35 | bool operator!=(const ListIterator &other) const { 36 | return _node != other._node; 37 | } 38 | 39 | ListIterator &operator++() { 40 | if (_node) _node = _node->next; 41 | return *this; 42 | } 43 | 44 | ListIterator &operator+=(size_t distance) { 45 | while (_node && distance) { 46 | _node = _node->next; 47 | --distance; 48 | } 49 | return *this; 50 | } 51 | 52 | operator ListConstIterator() const { 53 | return ListConstIterator(_node); 54 | } 55 | 56 | private: 57 | ListNode *_node; 58 | }; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/ListNode.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include // for NULL 8 | 9 | #include "JsonBufferAllocated.hpp" 10 | 11 | namespace ArduinoJson { 12 | namespace Internals { 13 | 14 | // A node for a singly-linked list. 15 | // Used by List and its iterators. 16 | template 17 | struct ListNode : public Internals::JsonBufferAllocated { 18 | ListNode() throw() : next(NULL) {} 19 | 20 | ListNode *next; 21 | T content; 22 | }; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/NonCopyable.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A type that cannot be copied 11 | class NonCopyable { 12 | protected: 13 | NonCopyable() {} 14 | 15 | private: 16 | // copy constructor is private 17 | NonCopyable(const NonCopyable&); 18 | 19 | // copy operator is private 20 | NonCopyable& operator=(const NonCopyable&); 21 | }; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/ReferenceType.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A type that is meant to be used by reference only (JsonArray and JsonObject) 11 | class ReferenceType { 12 | public: 13 | bool operator==(const ReferenceType& other) const { 14 | // two JsonArray are equal if they are the same instance 15 | // (we don't compare the content) 16 | return this == &other; 17 | } 18 | 19 | bool operator!=(const ReferenceType& other) const { 20 | return this != &other; 21 | } 22 | }; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Data/ValueSaver.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../JsonBuffer.hpp" 8 | #include "../JsonVariant.hpp" 9 | #include "../StringTraits/StringTraits.hpp" 10 | #include "../TypeTraits/EnableIf.hpp" 11 | 12 | namespace ArduinoJson { 13 | namespace Internals { 14 | 15 | template 16 | struct ValueSaver { 17 | template 18 | static bool save(JsonBuffer*, Destination& destination, Source source) { 19 | destination = source; 20 | return true; 21 | } 22 | }; 23 | 24 | template 25 | struct ValueSaver< 26 | Source, typename EnableIf::should_duplicate>::type> { 27 | template 28 | static bool save(JsonBuffer* buffer, Destination& dest, Source source) { 29 | if (!StringTraits::is_null(source)) { 30 | typename StringTraits::duplicate_t dup = 31 | StringTraits::duplicate(source, buffer); 32 | if (!dup) return false; 33 | dest = dup; 34 | } else { 35 | dest = reinterpret_cast(0); 36 | } 37 | return true; 38 | } 39 | }; 40 | 41 | // const char*, const signed char*, const unsigned char* 42 | template 43 | struct ValueSaver< 44 | Char*, typename EnableIf::should_duplicate>::type> { 45 | template 46 | static bool save(JsonBuffer*, Destination& dest, Char* source) { 47 | dest = reinterpret_cast(source); 48 | return true; 49 | } 50 | }; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Deserialization/Comments.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | template 10 | void skipSpacesAndComments(TInput& input) { 11 | for (;;) { 12 | switch (input.current()) { 13 | // spaces 14 | case ' ': 15 | case '\t': 16 | case '\r': 17 | case '\n': 18 | input.move(); 19 | continue; 20 | 21 | // comments 22 | case '/': 23 | switch (input.next()) { 24 | // C-style block comment 25 | case '*': 26 | input.move(); // skip '/' 27 | // no need to skip '*' 28 | for (;;) { 29 | input.move(); 30 | if (input.current() == '\0') return; 31 | if (input.current() == '*' && input.next() == '/') { 32 | input.move(); // skip '*' 33 | input.move(); // skip '/' 34 | break; 35 | } 36 | } 37 | break; 38 | 39 | // C++-style line comment 40 | case '/': 41 | // not need to skip "//" 42 | for (;;) { 43 | input.move(); 44 | if (input.current() == '\0') return; 45 | if (input.current() == '\n') break; 46 | } 47 | break; 48 | 49 | // not a comment, just a '/' 50 | default: 51 | return; 52 | } 53 | break; 54 | 55 | default: 56 | return; 57 | } 58 | } 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Deserialization/StringWriter.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | template 11 | class StringWriter { 12 | public: 13 | class String { 14 | public: 15 | String(TChar** ptr) : _writePtr(ptr), _startPtr(*ptr) {} 16 | 17 | void append(char c) { 18 | *(*_writePtr)++ = TChar(c); 19 | } 20 | 21 | const char* c_str() const { 22 | *(*_writePtr)++ = 0; 23 | return reinterpret_cast(_startPtr); 24 | } 25 | 26 | private: 27 | TChar** _writePtr; 28 | TChar* _startPtr; 29 | }; 30 | 31 | StringWriter(TChar* buffer) : _ptr(buffer) {} 32 | 33 | String startString() { 34 | return String(&_ptr); 35 | } 36 | 37 | private: 38 | TChar* _ptr; 39 | }; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/JsonArrayImpl.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonArray.hpp" 8 | #include "JsonArraySubscript.hpp" 9 | #include "JsonObject.hpp" 10 | 11 | namespace ArduinoJson { 12 | 13 | inline JsonArray &JsonArray::createNestedArray() { 14 | if (!_buffer) return JsonArray::invalid(); 15 | JsonArray &array = _buffer->createArray(); 16 | add(array); 17 | return array; 18 | } 19 | 20 | inline JsonObject &JsonArray::createNestedObject() { 21 | if (!_buffer) return JsonObject::invalid(); 22 | JsonObject &object = _buffer->createObject(); 23 | add(object); 24 | return object; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/JsonBufferImpl.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "Deserialization/JsonParser.hpp" 8 | 9 | inline ArduinoJson::JsonArray &ArduinoJson::JsonBuffer::createArray() { 10 | JsonArray *ptr = new (this) JsonArray(this); 11 | return ptr ? *ptr : JsonArray::invalid(); 12 | } 13 | 14 | inline ArduinoJson::JsonObject &ArduinoJson::JsonBuffer::createObject() { 15 | JsonObject *ptr = new (this) JsonObject(this); 16 | return ptr ? *ptr : JsonObject::invalid(); 17 | } 18 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/JsonObjectImpl.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonArray.hpp" 8 | #include "JsonObject.hpp" 9 | #include "JsonObjectSubscript.hpp" 10 | 11 | namespace ArduinoJson { 12 | 13 | template 14 | inline JsonArray &JsonObject::createNestedArray_impl(TStringRef key) { 15 | if (!_buffer) return JsonArray::invalid(); 16 | JsonArray &array = _buffer->createArray(); 17 | set(key, array); 18 | return array; 19 | } 20 | 21 | template 22 | inline JsonObject &JsonObject::createNestedObject_impl(TStringRef key) { 23 | if (!_buffer) return JsonObject::invalid(); 24 | JsonObject &object = _buffer->createObject(); 25 | set(key, object); 26 | return object; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/JsonPair.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonVariant.hpp" 8 | 9 | namespace ArduinoJson { 10 | 11 | // A key value pair for JsonObject. 12 | struct JsonPair { 13 | const char* key; 14 | JsonVariant value; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/JsonVariantBase.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonVariantCasts.hpp" 8 | #include "JsonVariantComparisons.hpp" 9 | #include "JsonVariantOr.hpp" 10 | #include "JsonVariantSubscripts.hpp" 11 | #include "Serialization/JsonPrintable.hpp" 12 | 13 | namespace ArduinoJson { 14 | namespace Internals { 15 | 16 | template 17 | class JsonVariantBase : public JsonPrintable, 18 | public JsonVariantCasts, 19 | public JsonVariantComparisons, 20 | public JsonVariantOr, 21 | public JsonVariantSubscripts, 22 | public JsonVariantTag {}; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/JsonVariantCasts.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "Data/JsonVariantAs.hpp" 8 | #include "Polyfills/attributes.hpp" 9 | 10 | namespace ArduinoJson { 11 | namespace Internals { 12 | 13 | template 14 | class JsonVariantCasts { 15 | public: 16 | #if ARDUINOJSON_ENABLE_DEPRECATED 17 | DEPRECATED("use as() instead") 18 | FORCE_INLINE JsonArray &asArray() const { 19 | return impl()->template as(); 20 | } 21 | 22 | DEPRECATED("use as() instead") 23 | FORCE_INLINE JsonObject &asObject() const { 24 | return impl()->template as(); 25 | } 26 | 27 | DEPRECATED("use as() instead") 28 | FORCE_INLINE const char *asString() const { 29 | return impl()->template as(); 30 | } 31 | #endif 32 | 33 | // Gets the variant as an array. 34 | // Returns a reference to the JsonArray or JsonArray::invalid() if the 35 | // variant 36 | // is not an array. 37 | FORCE_INLINE operator JsonArray &() const { 38 | return impl()->template as(); 39 | } 40 | 41 | // Gets the variant as an object. 42 | // Returns a reference to the JsonObject or JsonObject::invalid() if the 43 | // variant is not an object. 44 | FORCE_INLINE operator JsonObject &() const { 45 | return impl()->template as(); 46 | } 47 | 48 | template 49 | FORCE_INLINE operator T() const { 50 | return impl()->template as(); 51 | } 52 | 53 | private: 54 | const TImpl *impl() const { 55 | return static_cast(this); 56 | } 57 | }; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/JsonVariantOr.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "Data/JsonVariantAs.hpp" 8 | #include "Polyfills/attributes.hpp" 9 | #include "TypeTraits/EnableIf.hpp" 10 | #include "TypeTraits/IsIntegral.hpp" 11 | 12 | namespace ArduinoJson { 13 | namespace Internals { 14 | 15 | template 16 | class JsonVariantOr { 17 | public: 18 | // Returns the default value if the JsonVariant is undefined of incompatible 19 | template 20 | typename EnableIf::value, T>::type operator|( 21 | const T &defaultValue) const { 22 | if (impl()->template is()) 23 | return impl()->template as(); 24 | else 25 | return defaultValue; 26 | } 27 | 28 | // Returns the default value if the JsonVariant is undefined of incompatible 29 | // Special case for string: null is treated as undefined 30 | const char *operator|(const char *defaultValue) const { 31 | const char *value = impl()->template as(); 32 | return value ? value : defaultValue; 33 | } 34 | 35 | // Returns the default value if the JsonVariant is undefined of incompatible 36 | // Special case for integers: we also accept double 37 | template 38 | typename EnableIf::value, Integer>::type operator|( 39 | const Integer &defaultValue) const { 40 | if (impl()->template is()) 41 | return impl()->template as(); 42 | else 43 | return defaultValue; 44 | } 45 | 46 | private: 47 | const TImpl *impl() const { 48 | return static_cast(this); 49 | } 50 | }; 51 | } // namespace Internals 52 | } // namespace ArduinoJson 53 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #ifdef _MSC_VER // Visual Studio 8 | 9 | #define FORCE_INLINE // __forceinline causes C4714 when returning std::string 10 | #define NO_INLINE __declspec(noinline) 11 | #define DEPRECATED(msg) __declspec(deprecated(msg)) 12 | 13 | #elif defined(__GNUC__) // GCC or Clang 14 | 15 | #define FORCE_INLINE __attribute__((always_inline)) 16 | #define NO_INLINE __attribute__((noinline)) 17 | #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) 18 | #define DEPRECATED(msg) __attribute__((deprecated(msg))) 19 | #else 20 | #define DEPRECATED(msg) __attribute__((deprecated)) 21 | #endif 22 | 23 | #else // Other compilers 24 | 25 | #define FORCE_INLINE 26 | #define NO_INLINE 27 | #define DEPRECATED(msg) 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | inline bool isdigit(char c) { 11 | return '0' <= c && c <= '9'; 12 | } 13 | 14 | inline bool issign(char c) { 15 | return '-' == c || c == '+'; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Polyfills/isFloat.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include // for strcmp 8 | #include "./ctype.hpp" 9 | 10 | namespace ArduinoJson { 11 | namespace Internals { 12 | 13 | inline bool isFloat(const char* s) { 14 | if (!s) return false; 15 | 16 | if (!strcmp(s, "NaN")) return true; 17 | if (issign(*s)) s++; 18 | if (!strcmp(s, "Infinity")) return true; 19 | if (*s == '\0') return false; 20 | 21 | while (isdigit(*s)) s++; 22 | 23 | if (*s == '.') { 24 | s++; 25 | while (isdigit(*s)) s++; 26 | } 27 | 28 | if (*s == 'e' || *s == 'E') { 29 | s++; 30 | if (issign(*s)) s++; 31 | if (!isdigit(*s)) return false; 32 | while (isdigit(*s)) s++; 33 | } 34 | 35 | return *s == '\0'; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Polyfills/isInteger.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "./ctype.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | inline bool isInteger(const char* s) { 13 | if (!s || !*s) return false; 14 | if (issign(*s)) s++; 15 | while (isdigit(*s)) s++; 16 | return *s == '\0'; 17 | } 18 | } // namespace Internals 19 | } // namespace ArduinoJson 20 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | template 10 | bool isNaN(T x) { 11 | return x != x; 12 | } 13 | 14 | template 15 | bool isInfinity(T x) { 16 | return x != 0.0 && x * 2 == x; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Polyfills/parseInteger.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | #include "../Configuration.hpp" 10 | #include "./ctype.hpp" 11 | 12 | namespace ArduinoJson { 13 | namespace Internals { 14 | template 15 | T parseInteger(const char *s) { 16 | if (!s) return 0; // NULL 17 | 18 | if (*s == 't') return 1; // "true" 19 | 20 | T result = 0; 21 | bool negative_result = false; 22 | 23 | switch (*s) { 24 | case '-': 25 | negative_result = true; 26 | s++; 27 | break; 28 | case '+': 29 | s++; 30 | break; 31 | } 32 | 33 | while (isdigit(*s)) { 34 | result = T(result * 10 + T(*s - '0')); 35 | s++; 36 | } 37 | 38 | return negative_result ? T(~result + 1) : result; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/RawJson.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | 9 | namespace Internals { 10 | // A special type of data that can be used to insert pregenerated JSON portions. 11 | template 12 | class RawJsonString { 13 | public: 14 | explicit RawJsonString(T str) : _str(str) {} 15 | operator T() const { 16 | return _str; 17 | } 18 | 19 | private: 20 | T _str; 21 | }; 22 | 23 | template 24 | struct StringTraits, void> { 25 | static bool is_null(RawJsonString source) { 26 | return StringTraits::is_null(static_cast(source)); 27 | } 28 | 29 | typedef RawJsonString duplicate_t; 30 | 31 | template 32 | static duplicate_t duplicate(RawJsonString source, Buffer* buffer) { 33 | return duplicate_t(StringTraits::duplicate(source, buffer)); 34 | } 35 | 36 | static const bool has_append = false; 37 | static const bool has_equals = false; 38 | static const bool should_duplicate = StringTraits::should_duplicate; 39 | }; 40 | } 41 | 42 | template 43 | inline Internals::RawJsonString RawJson(T str) { 44 | return Internals::RawJsonString(str); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Serialization/DummyPrint.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A dummy Print implementation used in JsonPrintable::measureLength() 11 | class DummyPrint { 12 | public: 13 | size_t print(char) { 14 | return 1; 15 | } 16 | 17 | size_t print(const char* s) { 18 | return strlen(s); 19 | } 20 | }; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Serialization/DynamicStringBuilder.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../StringTraits/StringTraits.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | // A Print implementation that allows to write in a String 13 | template 14 | class DynamicStringBuilder { 15 | public: 16 | DynamicStringBuilder(TString &str) : _str(str) {} 17 | 18 | size_t print(char c) { 19 | StringTraits::append(_str, c); 20 | return 1; 21 | } 22 | 23 | size_t print(const char *s) { 24 | size_t initialLen = _str.length(); 25 | StringTraits::append(_str, s); 26 | return _str.length() - initialLen; 27 | } 28 | 29 | private: 30 | DynamicStringBuilder &operator=(const DynamicStringBuilder &); 31 | 32 | TString &_str; 33 | }; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Serialization/IndentedPrint.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // Decorator on top of Print to allow indented output. 11 | // This class is used by JsonPrintable::prettyPrintTo() but can also be used 12 | // for your own purpose, like logging. 13 | template 14 | class IndentedPrint { 15 | public: 16 | explicit IndentedPrint(Print &p) : sink(&p) { 17 | level = 0; 18 | tabSize = 2; 19 | isNewLine = true; 20 | } 21 | 22 | size_t print(char c) { 23 | size_t n = 0; 24 | if (isNewLine) n += writeTabs(); 25 | n += sink->print(c); 26 | isNewLine = c == '\n'; 27 | return n; 28 | } 29 | 30 | size_t print(const char *s) { 31 | // TODO: optimize 32 | size_t n = 0; 33 | while (*s) n += print(*s++); 34 | return n; 35 | } 36 | 37 | // Adds one level of indentation 38 | void indent() { 39 | if (level < MAX_LEVEL) level++; 40 | } 41 | 42 | // Removes one level of indentation 43 | void unindent() { 44 | if (level > 0) level--; 45 | } 46 | 47 | // Set the number of space printed for each level of indentation 48 | void setTabSize(uint8_t n) { 49 | if (n < MAX_TAB_SIZE) tabSize = n & MAX_TAB_SIZE; 50 | } 51 | 52 | private: 53 | Print *sink; 54 | uint8_t level : 4; 55 | uint8_t tabSize : 3; 56 | bool isNewLine : 1; 57 | 58 | size_t writeTabs() { 59 | size_t n = 0; 60 | for (int i = 0; i < level * tabSize; i++) n += sink->print(' '); 61 | return n; 62 | } 63 | 64 | static const int MAX_LEVEL = 15; // because it's only 4 bits 65 | static const int MAX_TAB_SIZE = 7; // because it's only 3 bits 66 | }; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Serialization/JsonSerializer.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "JsonWriter.hpp" 8 | 9 | namespace ArduinoJson { 10 | 11 | class JsonArray; 12 | class JsonObject; 13 | class JsonVariant; 14 | 15 | namespace Internals { 16 | 17 | class JsonArraySubscript; 18 | template 19 | class JsonObjectSubscript; 20 | 21 | template 22 | class JsonSerializer { 23 | public: 24 | static void serialize(const JsonArray &, Writer &); 25 | static void serialize(const JsonArraySubscript &, Writer &); 26 | static void serialize(const JsonObject &, Writer &); 27 | template 28 | static void serialize(const JsonObjectSubscript &, Writer &); 29 | static void serialize(const JsonVariant &, Writer &); 30 | }; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Serialization/StaticStringBuilder.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A Print implementation that allows to write in a char[] 11 | class StaticStringBuilder { 12 | public: 13 | StaticStringBuilder(char *buf, size_t size) : end(buf + size - 1), p(buf) { 14 | *p = '\0'; 15 | } 16 | 17 | size_t print(char c) { 18 | if (p >= end) return 0; 19 | *p++ = c; 20 | *p = '\0'; 21 | return 1; 22 | } 23 | 24 | size_t print(const char *s) { 25 | char *begin = p; 26 | while (p < end && *s) *p++ = *s++; 27 | *p = '\0'; 28 | return size_t(p - begin); 29 | } 30 | 31 | private: 32 | char *end; 33 | char *p; 34 | }; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/Serialization/StreamPrintAdapter.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../Configuration.hpp" 8 | 9 | #if ARDUINOJSON_ENABLE_STD_STREAM 10 | 11 | #include 12 | 13 | namespace ArduinoJson { 14 | namespace Internals { 15 | 16 | class StreamPrintAdapter { 17 | public: 18 | explicit StreamPrintAdapter(std::ostream& os) : _os(os) {} 19 | 20 | size_t print(char c) { 21 | _os << c; 22 | return 1; 23 | } 24 | 25 | size_t print(const char* s) { 26 | _os << s; 27 | return strlen(s); 28 | } 29 | 30 | private: 31 | // cannot be assigned 32 | StreamPrintAdapter& operator=(const StreamPrintAdapter&); 33 | 34 | std::ostream& _os; 35 | }; 36 | } 37 | } 38 | 39 | #endif // ARDUINOJSON_ENABLE_STD_STREAM 40 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/StringTraits/ArduinoStream.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #if ARDUINOJSON_ENABLE_ARDUINO_STREAM 8 | 9 | #include 10 | 11 | namespace ArduinoJson { 12 | namespace Internals { 13 | 14 | struct ArduinoStreamTraits { 15 | class Reader { 16 | Stream& _stream; 17 | char _current, _next; 18 | 19 | public: 20 | Reader(Stream& stream) : _stream(stream), _current(0), _next(0) {} 21 | 22 | void move() { 23 | _current = _next; 24 | _next = 0; 25 | } 26 | 27 | char current() { 28 | if (!_current) _current = read(); 29 | return _current; 30 | } 31 | 32 | char next() { 33 | // assumes that current() has been called 34 | if (!_next) _next = read(); 35 | return _next; 36 | } 37 | 38 | private: 39 | char read() { 40 | // don't use _stream.read() as it ignores the timeout 41 | char c = 0; 42 | _stream.readBytes(&c, 1); 43 | return c; 44 | } 45 | }; 46 | 47 | static const bool has_append = false; 48 | static const bool has_equals = false; 49 | }; 50 | 51 | template 52 | struct StringTraits< 53 | TStream, 54 | // match any type that is derived from Stream: 55 | typename EnableIf< 56 | IsBaseOf::type>::value>::type> 57 | : ArduinoStreamTraits {}; 58 | } 59 | } 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/StringTraits/FlashString.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #if ARDUINOJSON_ENABLE_PROGMEM 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | template <> 12 | struct StringTraits { 13 | class Reader { 14 | const char* _ptr; 15 | 16 | public: 17 | Reader(const __FlashStringHelper* ptr) 18 | : _ptr(reinterpret_cast(ptr)) {} 19 | 20 | void move() { 21 | _ptr++; 22 | } 23 | 24 | char current() const { 25 | return pgm_read_byte_near(_ptr); 26 | } 27 | 28 | char next() const { 29 | return pgm_read_byte_near(_ptr + 1); 30 | } 31 | }; 32 | 33 | static bool equals(const __FlashStringHelper* str, const char* expected) { 34 | const char* actual = reinterpret_cast(str); 35 | if (!actual || !expected) return actual == expected; 36 | return strcmp_P(expected, actual) == 0; 37 | } 38 | 39 | static bool is_null(const __FlashStringHelper* str) { 40 | return !str; 41 | } 42 | 43 | typedef const char* duplicate_t; 44 | 45 | template 46 | static duplicate_t duplicate(const __FlashStringHelper* str, Buffer* buffer) { 47 | if (!str) return NULL; 48 | size_t size = strlen_P((const char*)str) + 1; 49 | void* dup = buffer->alloc(size); 50 | if (dup != NULL) memcpy_P(dup, (const char*)str, size); 51 | return static_cast(dup); 52 | } 53 | 54 | static const bool has_append = false; 55 | static const bool has_equals = true; 56 | static const bool should_duplicate = true; 57 | }; 58 | } // namespace Internals 59 | } // namespace ArduinoJson 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/StringTraits/StdStream.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #if ARDUINOJSON_ENABLE_STD_STREAM 8 | 9 | #include 10 | 11 | namespace ArduinoJson { 12 | namespace Internals { 13 | 14 | struct StdStreamTraits { 15 | class Reader { 16 | std::istream& _stream; 17 | char _current, _next; 18 | 19 | public: 20 | Reader(std::istream& stream) : _stream(stream), _current(0), _next(0) {} 21 | 22 | void move() { 23 | _current = _next; 24 | _next = 0; 25 | } 26 | 27 | char current() { 28 | if (!_current) _current = read(); 29 | return _current; 30 | } 31 | 32 | char next() { 33 | // assumes that current() has been called 34 | if (!_next) _next = read(); 35 | return _next; 36 | } 37 | 38 | private: 39 | Reader& operator=(const Reader&); // Visual Studio C4512 40 | 41 | char read() { 42 | return _stream.eof() ? '\0' : static_cast(_stream.get()); 43 | } 44 | }; 45 | 46 | static const bool has_append = false; 47 | static const bool has_equals = false; 48 | }; 49 | 50 | template 51 | struct StringTraits< 52 | TStream, 53 | // match any type that is derived from std::istream: 54 | typename EnableIf::type>::value>::type> 56 | : StdStreamTraits {}; 57 | } 58 | } 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/StringTraits/StringTraits.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include 8 | #include "../Configuration.hpp" 9 | #include "../TypeTraits/EnableIf.hpp" 10 | #include "../TypeTraits/IsBaseOf.hpp" 11 | #include "../TypeTraits/IsChar.hpp" 12 | #include "../TypeTraits/IsConst.hpp" 13 | #include "../TypeTraits/RemoveReference.hpp" 14 | 15 | namespace ArduinoJson { 16 | namespace Internals { 17 | 18 | template 19 | struct StringTraits { 20 | static const bool has_append = false; 21 | static const bool has_equals = false; 22 | }; 23 | 24 | template 25 | struct StringTraits : StringTraits {}; 26 | 27 | template 28 | struct StringTraits : StringTraits {}; 29 | } 30 | } 31 | 32 | #include "ArduinoStream.hpp" 33 | #include "CharPointer.hpp" 34 | #include "FlashString.hpp" 35 | #include "StdStream.hpp" 36 | #include "StdString.hpp" 37 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/EnableIf.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that return the type T if Condition is true. 11 | template 12 | struct EnableIf {}; 13 | 14 | template 15 | struct EnableIf { 16 | typedef T type; 17 | }; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/IsArray.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that return the type T without the const modifier 11 | template 12 | struct IsArray { 13 | static const bool value = false; 14 | }; 15 | template 16 | struct IsArray { 17 | static const bool value = true; 18 | }; 19 | template 20 | struct IsArray { 21 | static const bool value = true; 22 | }; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/IsBaseOf.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that returns true if Derived inherits from TBase is an 11 | // integral type. 12 | template 13 | class IsBaseOf { 14 | protected: // <- to avoid GCC's "all member functions in class are private" 15 | typedef char Yes[1]; 16 | typedef char No[2]; 17 | 18 | static Yes &probe(const TBase *); 19 | static No &probe(...); 20 | 21 | public: 22 | enum { 23 | value = sizeof(probe(reinterpret_cast(0))) == sizeof(Yes) 24 | }; 25 | }; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/IsChar.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "IsSame.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | // A meta-function that returns true if T is a charater 13 | template 14 | struct IsChar { 15 | static const bool value = IsSame::value || 16 | IsSame::value || 17 | IsSame::value; 18 | }; 19 | 20 | template 21 | struct IsChar : IsChar {}; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/IsConst.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that return the type T without the const modifier 11 | template 12 | struct IsConst { 13 | static const bool value = false; 14 | }; 15 | 16 | template 17 | struct IsConst { 18 | static const bool value = true; 19 | }; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "IsSame.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | // A meta-function that returns true if T is a floating point type 13 | template 14 | struct IsFloatingPoint { 15 | static const bool value = IsSame::value || IsSame::value; 16 | }; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/IsIntegral.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "IsSame.hpp" 8 | #include "IsSignedIntegral.hpp" 9 | #include "IsUnsignedIntegral.hpp" 10 | 11 | namespace ArduinoJson { 12 | namespace Internals { 13 | 14 | // A meta-function that returns true if T is an integral type. 15 | template 16 | struct IsIntegral { 17 | static const bool value = IsSignedIntegral::value || 18 | IsUnsignedIntegral::value || 19 | IsSame::value; 20 | // CAUTION: differs from std::is_integral as it doesn't include bool 21 | }; 22 | 23 | template 24 | struct IsIntegral : IsIntegral {}; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/IsSame.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that returns true if types T and U are the same. 11 | template 12 | struct IsSame { 13 | static const bool value = false; 14 | }; 15 | 16 | template 17 | struct IsSame { 18 | static const bool value = true; 19 | }; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../Configuration.hpp" 8 | #include "IsSame.hpp" 9 | 10 | namespace ArduinoJson { 11 | namespace Internals { 12 | 13 | // A meta-function that returns true if T is an integral type. 14 | template 15 | struct IsSignedIntegral { 16 | static const bool value = 17 | IsSame::value || IsSame::value || 18 | IsSame::value || IsSame::value || 19 | #if ARDUINOJSON_USE_LONG_LONG 20 | IsSame::value || 21 | #endif 22 | #if ARDUINOJSON_USE_INT64 23 | IsSame::value || 24 | #endif 25 | false; 26 | }; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "../Configuration.hpp" 8 | #include "IsSame.hpp" 9 | 10 | namespace ArduinoJson { 11 | namespace Internals { 12 | 13 | // A meta-function that returns true if T is an integral type. 14 | template 15 | struct IsUnsignedIntegral { 16 | static const bool value = 17 | IsSame::value || IsSame::value || 18 | IsSame::value || IsSame::value || 19 | #if ARDUINOJSON_USE_LONG_LONG 20 | IsSame::value || 21 | #endif 22 | #if ARDUINOJSON_USE_INT64 23 | IsSame::value || 24 | #endif 25 | false; 26 | }; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/IsVariant.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #include "IsBaseOf.hpp" 8 | 9 | namespace ArduinoJson { 10 | namespace Internals { 11 | 12 | class JsonVariantTag {}; 13 | 14 | template 15 | struct IsVariant : IsBaseOf {}; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveConst.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that return the type T without the const modifier 11 | template 12 | struct RemoveConst { 13 | typedef T type; 14 | }; 15 | template 16 | struct RemoveConst { 17 | typedef T type; 18 | }; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/TypeTraits/RemoveReference.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | namespace ArduinoJson { 8 | namespace Internals { 9 | 10 | // A meta-function that return the type T without the reference modifier. 11 | template 12 | struct RemoveReference { 13 | typedef T type; 14 | }; 15 | template 16 | struct RemoveReference { 17 | typedef T type; 18 | }; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /lib/ArduinoJson/src/ArduinoJson/version.hpp: -------------------------------------------------------------------------------- 1 | // ArduinoJson - arduinojson.org 2 | // Copyright Benoit Blanchon 2014-2018 3 | // MIT License 4 | 5 | #pragma once 6 | 7 | #define ARDUINOJSON_VERSION "5.13.4" 8 | #define ARDUINOJSON_VERSION_MAJOR 5 9 | #define ARDUINOJSON_VERSION_MINOR 13 10 | #define ARDUINOJSON_VERSION_REVISION 4 11 | -------------------------------------------------------------------------------- /lib/DFRobotDFPlayerMini-master/.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "2.7" 4 | env: 5 | - BOARD=uno 6 | - BOARD=leonardo 7 | - BOARD=esp01 8 | 9 | install: 10 | - python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)" 11 | 12 | script: 13 | - cd examples/FullFunction 14 | - platformio ci -l ../.. FullFunction.ino --board=$BOARD 15 | - cd ../GetStarted 16 | - platformio ci -l ../.. getStarted.ino --board=$BOARD 17 | 18 | -------------------------------------------------------------------------------- /lib/DFRobotDFPlayerMini-master/README.md: -------------------------------------------------------------------------------- 1 | # DFPlayer - A Mini MP3 Player For Arduino 2 | 3 | 4 | DFPlayer - A Mini MP3 Player For Arduino 5 | https://www.dfrobot.com/index.php?route=product/product&product_id=1121 6 | 7 | This example shows the all the function of library for DFPlayer. 8 | 9 | Created 2016-12-07 10 | By [Angelo qiao](Angelo.qiao@dfrobot.com) 11 | 12 | GNU Lesser General Public License. 13 | See for details. 14 | All above must be included in any redistribution 15 | 16 | Notice and Trouble shooting 17 | 18 | 1.Connection and Diagram can be found here 19 | https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram 20 | 2.This code is tested on Arduino Uno, Leonardo, Mega boards. 21 | -------------------------------------------------------------------------------- /lib/DFRobotDFPlayerMini-master/doc/FN-M16P+Embedded+MP3+Audio+Module+Datasheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/lib/DFRobotDFPlayerMini-master/doc/FN-M16P+Embedded+MP3+Audio+Module+Datasheet.pdf -------------------------------------------------------------------------------- /lib/DFRobotDFPlayerMini-master/library.properties: -------------------------------------------------------------------------------- 1 | name=DFRobotDFPlayerMini 2 | version=1.0.5 3 | author=DFRobot 4 | maintainer=Angelo 5 | sentence=Driver for DFPlayer Mini from DFRobot 6 | paragraph=Easy-to-use and reliable library for DFPlayer Mini 7 | category=Device Control 8 | url=https://github.com/DFRobot/DFRobotDFPlayerMini 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/DHT_sensor_library/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidlines 2 | 3 | This library is the culmination of the expertise of many members of the open source community who have dedicated their time and hard work. The best way to ask for help or propose a new idea is to [create a new issue](https://github.com/adafruit/DHT-sensor-library/issues/new) while creating a Pull Request with your code changes allows you to share your own innovations with the rest of the community. 4 | 5 | The following are some guidelines to observe when creating issues or PRs: 6 | 7 | - Be friendly; it is important that we can all enjoy a safe space as we are all working on the same project and it is okay for people to have different ideas 8 | 9 | - [Use code blocks](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code); it helps us help you when we can read your code! On that note also refrain from pasting more than 30 lines of code in a post, instead [create a gist](https://gist.github.com/) if you need to share large snippets 10 | 11 | - Use reasonable titles; refrain from using overly long or capitalized titles as they are usually annoying and do little to encourage others to help :smile: 12 | 13 | - Be detailed; refrain from mentioning code problems without sharing your source code and always give information regarding your board and version of the library 14 | -------------------------------------------------------------------------------- /lib/DHT_sensor_library/keywords.txt: -------------------------------------------------------------------------------- 1 | ########################################### 2 | # Syntax Coloring Map For DHT-sensor-library 3 | ########################################### 4 | 5 | ########################################### 6 | # Datatypes (KEYWORD1) 7 | ########################################### 8 | 9 | DHT KEYWORD1 10 | 11 | ########################################### 12 | # Methods and Functions (KEYWORD2) 13 | ########################################### 14 | 15 | begin KEYWORD2 16 | readTemperature KEYWORD2 17 | convertCtoF KEYWORD2 18 | convertFtoC KEYWORD2 19 | computeHeatIndex KEYWORD2 20 | readHumidity KEYWORD2 21 | read KEYWORD2 22 | 23 | -------------------------------------------------------------------------------- /lib/DHT_sensor_library/library.properties: -------------------------------------------------------------------------------- 1 | name=DHT sensor library 2 | version=1.3.10 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=Arduino library for DHT11, DHT22, etc Temp & Humidity Sensors 6 | paragraph=Arduino library for DHT11, DHT22, etc Temp & Humidity Sensors 7 | category=Sensors 8 | url=https://github.com/adafruit/DHT-sensor-library 9 | architectures=* 10 | depends=Adafruit Unified Sensor 11 | -------------------------------------------------------------------------------- /lib/DHT_sensor_library/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2020 Adafruit Industries 2 | 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 18 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 19 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 20 | OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /lib/FastLED/.library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "FastLED", 3 | "description": "FastLED is a library for programming addressable rgb led strips (APA102/Dotstar, WS2812/Neopixel, LPD8806, and a dozen others) acting both as a driver and as a library for color management and fast math.", 4 | "keywords": [ 5 | "led", 6 | "noise", 7 | "rgb", 8 | "math", 9 | "fast" 10 | ], 11 | "authors": [ 12 | { 13 | "email": null, 14 | "url": "https://github.com/focalintent", 15 | "maintainer": true, 16 | "name": "Daniel Garcia" 17 | }, 18 | { 19 | "email": null, 20 | "url": "https://github.com/kriegsman", 21 | "maintainer": true, 22 | "name": "Mark Kriegsman" 23 | } 24 | ], 25 | "repository": { 26 | "type": "git", 27 | "url": "https://github.com/FastLED/FastLED.git" 28 | }, 29 | "version": "3.2.6", 30 | "license": "MIT", 31 | "homepage": "http://fastled.io", 32 | "frameworks": [ 33 | "arduino" 34 | ], 35 | "platforms": [ 36 | "atmelavr", 37 | "atmelsam", 38 | "freescalekinetis", 39 | "nordicnrf51", 40 | "nxplpc", 41 | "ststm32", 42 | "teensy", 43 | "espressif8266", 44 | "espressif32" 45 | ], 46 | "export": { 47 | "exclude": [ 48 | "docs", 49 | "extras" 50 | ] 51 | }, 52 | "build": { 53 | "srcFilter": [ 54 | "+<*.c>", 55 | "+<*.cpp>", 56 | "+<*.h>" 57 | ], 58 | "libArchive": false 59 | }, 60 | "id": 126 61 | } -------------------------------------------------------------------------------- /lib/FastLED/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 FastLED 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /lib/FastLED/bitswap.cpp: -------------------------------------------------------------------------------- 1 | #define FASTLED_INTERNAL 2 | #include "FastLED.h" 3 | 4 | /// Simplified form of bits rotating function. Based on code found here - http://www.hackersdelight.org/hdcodetxt/transpose8.c.txt - rotating 5 | /// data into LSB for a faster write (the code using this data can happily walk the array backwards) 6 | void transpose8x1_noinline(unsigned char *A, unsigned char *B) { 7 | uint32_t x, y, t; 8 | 9 | // Load the array and pack it into x and y. 10 | y = *(unsigned int*)(A); 11 | x = *(unsigned int*)(A+4); 12 | 13 | // pre-transform x 14 | t = (x ^ (x >> 7)) & 0x00AA00AA; x = x ^ t ^ (t << 7); 15 | t = (x ^ (x >>14)) & 0x0000CCCC; x = x ^ t ^ (t <<14); 16 | 17 | // pre-transform y 18 | t = (y ^ (y >> 7)) & 0x00AA00AA; y = y ^ t ^ (t << 7); 19 | t = (y ^ (y >>14)) & 0x0000CCCC; y = y ^ t ^ (t <<14); 20 | 21 | // final transform 22 | t = (x & 0xF0F0F0F0) | ((y >> 4) & 0x0F0F0F0F); 23 | y = ((x << 4) & 0xF0F0F0F0) | (y & 0x0F0F0F0F); 24 | x = t; 25 | 26 | *((uint32_t*)B) = y; 27 | *((uint32_t*)(B+4)) = x; 28 | } 29 | -------------------------------------------------------------------------------- /lib/FastLED/component.mk: -------------------------------------------------------------------------------- 1 | COMPONENT_ADD_INCLUDEDIRS := . 2 | -------------------------------------------------------------------------------- /lib/FastLED/cpp_compat.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_CPP_COMPAT_H 2 | #define __INC_CPP_COMPAT_H 3 | 4 | #include "FastLED.h" 5 | 6 | #if __cplusplus <= 199711L 7 | 8 | #define static_assert(expression, message) 9 | #define constexpr const 10 | 11 | #else 12 | 13 | // things that we can turn on if we're in a C++11 environment 14 | #endif 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /lib/FastLED/dmx.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_DMX_H 2 | #define __INC_DMX_H 3 | 4 | #include "FastLED.h" 5 | 6 | #ifdef DmxSimple_h 7 | #include 8 | #define HAS_DMX_SIMPLE 9 | 10 | ///@ingroup chipsets 11 | ///@{ 12 | FASTLED_NAMESPACE_BEGIN 13 | 14 | // note - dmx simple must be included before FastSPI for this code to be enabled 15 | template class DMXSimpleController : public CPixelLEDController { 16 | public: 17 | // initialize the LED controller 18 | virtual void init() { DmxSimple.usePin(DATA_PIN); } 19 | 20 | protected: 21 | virtual void showPixels(PixelController & pixels) { 22 | int iChannel = 1; 23 | while(pixels.has(1)) { 24 | DmxSimple.write(iChannel++, pixels.loadAndScale0()); 25 | DmxSimple.write(iChannel++, pixels.loadAndScale1()); 26 | DmxSimple.write(iChannel++, pixels.loadAndScale2()); 27 | pixels.advanceData(); 28 | pixels.stepDithering(); 29 | } 30 | } 31 | }; 32 | 33 | FASTLED_NAMESPACE_END 34 | 35 | #endif 36 | 37 | #ifdef DmxSerial_h 38 | #include 39 | 40 | FASTLED_NAMESPACE_BEGIN 41 | 42 | template class DMXSerialController : public CPixelLEDController { 43 | public: 44 | // initialize the LED controller 45 | virtual void init() { DMXSerial.init(DMXController); } 46 | 47 | virtual void showPixels(PixelController & pixels) { 48 | int iChannel = 1; 49 | while(pixels.has(1)) { 50 | DMXSerial.write(iChannel++, pixels.loadAndScale0()); 51 | DMXSerial.write(iChannel++, pixels.loadAndScale1()); 52 | DMXSerial.write(iChannel++, pixels.loadAndScale2()); 53 | pixels.advanceData(); 54 | pixels.stepDithering(); 55 | } 56 | } 57 | }; 58 | 59 | FASTLED_NAMESPACE_END 60 | ///@} 61 | 62 | #define HAS_DMX_SERIAL 63 | #endif 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /lib/FastLED/fastspi_dma.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/lib/FastLED/fastspi_dma.h -------------------------------------------------------------------------------- /lib/FastLED/fastspi_types.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTSPI_TYPES_H 2 | #define __INC_FASTSPI_TYPES_H 3 | 4 | #include "FastLED.h" 5 | 6 | FASTLED_NAMESPACE_BEGIN 7 | 8 | // Some helper macros for getting at mis-ordered byte values 9 | #define SPI_B0 (RGB_BYTE0(RGB_ORDER) + (MASK_SKIP_BITS & SKIP)) 10 | #define SPI_B1 (RGB_BYTE1(RGB_ORDER) + (MASK_SKIP_BITS & SKIP)) 11 | #define SPI_B2 (RGB_BYTE2(RGB_ORDER) + (MASK_SKIP_BITS & SKIP)) 12 | #define SPI_ADVANCE (3 + (MASK_SKIP_BITS & SKIP)) 13 | 14 | /// Some of the SPI controllers will need to perform a transform on each byte before doing 15 | /// anyting with it. Creating a class of this form and passing it in as a template parameter to 16 | /// writeBytes/writeBytes3 below will ensure that the body of this method will get called on every 17 | /// byte worked on. Recommendation, make the adjust method aggressively inlined. 18 | /// 19 | /// TODO: Convinience macro for building these 20 | class DATA_NOP { 21 | public: 22 | static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data) { return data; } 23 | static __attribute__((always_inline)) inline uint8_t adjust(register uint8_t data, register uint8_t scale) { return scale8(data, scale); } 24 | static __attribute__((always_inline)) inline void postBlock(int /* len */) { } 25 | }; 26 | 27 | #define FLAG_START_BIT 0x80 28 | #define MASK_SKIP_BITS 0x3F 29 | 30 | // Clock speed dividers 31 | #define SPEED_DIV_2 2 32 | #define SPEED_DIV_4 4 33 | #define SPEED_DIV_8 8 34 | #define SPEED_DIV_16 16 35 | #define SPEED_DIV_32 32 36 | #define SPEED_DIV_64 64 37 | #define SPEED_DIV_128 128 38 | 39 | #define MAX_DATA_RATE 0 40 | 41 | FASTLED_NAMESPACE_END 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /lib/FastLED/led_sysdefs.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_H 2 | #define __INC_LED_SYSDEFS_H 3 | 4 | #include "FastLED.h" 5 | 6 | #include "fastled_config.h" 7 | 8 | #if defined(NRF51) || defined(__RFduino__) || defined (__Simblee__) 9 | #include "platforms/arm/nrf51/led_sysdefs_arm_nrf51.h" 10 | #elif defined(__MK20DX128__) || defined(__MK20DX256__) 11 | // Include k20/T3 headers 12 | #include "platforms/arm/k20/led_sysdefs_arm_k20.h" 13 | #elif defined(__MK66FX1M0__) || defined(__MK64FX512__) 14 | // Include k66/T3.6 headers 15 | #include "platforms/arm/k66/led_sysdefs_arm_k66.h" 16 | #elif defined(__MKL26Z64__) 17 | // Include kl26/T-LC headers 18 | #include "platforms/arm/kl26/led_sysdefs_arm_kl26.h" 19 | #elif defined(__SAM3X8E__) 20 | // Include sam/due headers 21 | #include "platforms/arm/sam/led_sysdefs_arm_sam.h" 22 | #elif defined(STM32F10X_MD) || defined(__STM32F1__) 23 | #include "platforms/arm/stm32/led_sysdefs_arm_stm32.h" 24 | #elif defined(__SAMD21G18A__) || defined(__SAMD21J18A__) || defined(__SAMD21E17A__) || defined(__SAMD21E18A__) || defined(__SAMD51G19A__) 25 | #include "platforms/arm/d21/led_sysdefs_arm_d21.h" 26 | #elif defined(ESP8266) 27 | #include "platforms/esp/8266/led_sysdefs_esp8266.h" 28 | #elif defined(ESP32) 29 | #include "platforms/esp/32/led_sysdefs_esp32.h" 30 | #else 31 | // AVR platforms 32 | #include "platforms/avr/led_sysdefs_avr.h" 33 | #endif 34 | 35 | #ifndef FASTLED_NAMESPACE_BEGIN 36 | #define FASTLED_NAMESPACE_BEGIN 37 | #define FASTLED_NAMESPACE_END 38 | #define FASTLED_USING_NAMESPACE 39 | #endif 40 | 41 | // Arduino.h needed for convenience functions digitalPinToPort/BitMask/portOutputRegister and the pinMode methods. 42 | #ifdef ARDUINO 43 | #include 44 | #endif 45 | 46 | #define CLKS_PER_US (F_CPU/1000000) 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /lib/FastLED/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "FastLED", 3 | "description": "FastLED is a library for programming addressable rgb led strips (APA102/Dotstar, WS2812/Neopixel, LPD8806, and a dozen others) acting both as a driver and as a library for color management and fast math.", 4 | "keywords": "led,noise,rgb,math,fast", 5 | "authors": [ 6 | { 7 | "name": "Daniel Garcia", 8 | "url": "https://github.com/focalintent", 9 | "maintainer": true 10 | }, 11 | { 12 | "name": "Mark Kriegsman", 13 | "url": "https://github.com/kriegsman", 14 | "maintainer": true 15 | } 16 | ], 17 | "repository": { 18 | "type": "git", 19 | "url": "https://github.com/FastLED/FastLED.git" 20 | }, 21 | "version": "3.2.6", 22 | "license": "MIT", 23 | "homepage": "http://fastled.io", 24 | "frameworks": "arduino", 25 | "platforms": "atmelavr, atmelsam, freescalekinetis, nordicnrf51, nxplpc, ststm32, teensy, espressif8266, espressif32", 26 | "export": { 27 | "exclude": [ 28 | "docs", 29 | "extras" 30 | ] 31 | }, 32 | "build": { 33 | "srcFilter": [ 34 | "+<*.c>", 35 | "+<*.cpp>", 36 | "+<*.h>" 37 | ], 38 | "libArchive": false 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /lib/FastLED/library.properties: -------------------------------------------------------------------------------- 1 | name=FastLED 2 | version=3.2.6 3 | author=Daniel Garcia 4 | maintainer=Daniel Garcia 5 | sentence=Multi-platform library for controlling dozens of different types of LEDs along with optimized math, effect, and noise functions. 6 | paragraph=Multi-platform library for controlling dozens of different types of LEDs along with optimized math, effect, and noise functions. 7 | category=Display 8 | url=https://github.com/FastLED/FastLED 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/FastLED/platforms.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_PLATFORMS_H 2 | #define __INC_PLATFORMS_H 3 | 4 | #include "FastLED.h" 5 | 6 | #include "fastled_config.h" 7 | 8 | #if defined(NRF51) 9 | #include "platforms/arm/nrf51/fastled_arm_nrf51.h" 10 | #elif defined(__MK20DX128__) || defined(__MK20DX256__) 11 | // Include k20/T3 headers 12 | #include "platforms/arm/k20/fastled_arm_k20.h" 13 | #elif defined(__MK66FX1M0__) || defined(__MK64FX512__) 14 | // Include k66/T3.6 headers 15 | #include "platforms/arm/k66/fastled_arm_k66.h" 16 | #elif defined(__MKL26Z64__) 17 | // Include kl26/T-LC headers 18 | #include "platforms/arm/kl26/fastled_arm_kl26.h" 19 | #elif defined(__SAM3X8E__) 20 | // Include sam/due headers 21 | #include "platforms/arm/sam/fastled_arm_sam.h" 22 | #elif defined(STM32F10X_MD) || defined(__STM32F1__) 23 | #include "platforms/arm/stm32/fastled_arm_stm32.h" 24 | #elif defined(__SAMD21G18A__) || defined(__SAMD21J18A__) || defined(__SAMD21E17A__) || defined(__SAMD21E18A__) 25 | #include "platforms/arm/d21/fastled_arm_d21.h" 26 | #elif defined(__SAMD51G19A__) 27 | #include "platforms/arm/d51/fastled_arm_d51.h" 28 | #elif defined(ESP8266) 29 | #include "platforms/esp/8266/fastled_esp8266.h" 30 | #elif defined(ESP32) 31 | #include "platforms/esp/32/fastled_esp32.h" 32 | #else 33 | // AVR platforms 34 | #include "platforms/avr/fastled_avr.h" 35 | #endif 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/d21/fastled_arm_d21.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_D21_H 2 | #define __INC_FASTLED_ARM_D21_H 3 | 4 | #include "fastpin_arm_d21.h" 5 | #include "clockless_arm_d21.h" 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/d21/led_sysdefs_arm_d21.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_D21_H 2 | #define __INC_LED_SYSDEFS_ARM_D21_H 3 | 4 | 5 | #define FASTLED_ARM 6 | #define FASTLED_ARM_M0_PLUS 7 | 8 | #ifndef INTERRUPT_THRESHOLD 9 | #define INTERRUPT_THRESHOLD 1 10 | #endif 11 | 12 | // Default to allowing interrupts 13 | #ifndef FASTLED_ALLOW_INTERRUPTS 14 | #define FASTLED_ALLOW_INTERRUPTS 0 15 | #endif 16 | 17 | #if FASTLED_ALLOW_INTERRUPTS == 1 18 | #define FASTLED_ACCURATE_CLOCK 19 | #endif 20 | 21 | // reusing/abusing cli/sei defs for due 22 | #define cli() __disable_irq(); 23 | #define sei() __enable_irq(); 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/d51/fastled_arm_d51.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_D51_H 2 | #define __INC_FASTLED_ARM_D51_H 3 | 4 | #include "fastpin_arm_d51.h" 5 | #include "clockless_arm_d51.h" 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/d51/led_sysdefs_arm_d51.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_D51_H 2 | #define __INC_LED_SYSDEFS_ARM_D51_H 3 | 4 | 5 | #define FASTLED_ARM 6 | // Note this is an M4, not an M0+, but this enables the shared m0clockless.h 7 | #define FASTLED_ARM_M0_PLUS 8 | 9 | #ifndef INTERRUPT_THRESHOLD 10 | #define INTERRUPT_THRESHOLD 1 11 | #endif 12 | 13 | // Default to allowing interrupts 14 | #ifndef FASTLED_ALLOW_INTERRUPTS 15 | #define FASTLED_ALLOW_INTERRUPTS 0 16 | #endif 17 | 18 | #if FASTLED_ALLOW_INTERRUPTS == 1 19 | #define FASTLED_ACCURATE_CLOCK 20 | #endif 21 | 22 | // reusing/abusing cli/sei defs for due 23 | #define cli() __disable_irq(); 24 | #define sei() __enable_irq(); 25 | 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/k20/fastled_arm_k20.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_K20_H 2 | #define __INC_FASTLED_ARM_K20_H 3 | 4 | // Include the k20 headers 5 | #include "fastpin_arm_k20.h" 6 | #include "fastspi_arm_k20.h" 7 | #include "octows2811_controller.h" 8 | #include "ws2812serial_controller.h" 9 | #include "smartmatrix_t3.h" 10 | #include "clockless_arm_k20.h" 11 | #include "clockless_block_arm_k20.h" 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/k20/led_sysdefs_arm_k20.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_K20_H 2 | #define __INC_LED_SYSDEFS_ARM_K20_H 3 | 4 | #define FASTLED_TEENSY3 5 | #define FASTLED_ARM 6 | 7 | #ifndef INTERRUPT_THRESHOLD 8 | #define INTERRUPT_THRESHOLD 1 9 | #endif 10 | 11 | // Default to allowing interrupts 12 | #ifndef FASTLED_ALLOW_INTERRUPTS 13 | #define FASTLED_ALLOW_INTERRUPTS 1 14 | #endif 15 | 16 | #if FASTLED_ALLOW_INTERRUPTS == 1 17 | #define FASTLED_ACCURATE_CLOCK 18 | #endif 19 | 20 | #if (F_CPU == 96000000) 21 | #define CLK_DBL 1 22 | #endif 23 | 24 | // Get some system include files 25 | #include 26 | #include // for cli/se definitions 27 | 28 | // Define the register types 29 | #if defined(ARDUINO) // && ARDUINO < 150 30 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 31 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 32 | #endif 33 | 34 | extern volatile uint32_t systick_millis_count; 35 | # define MS_COUNTER systick_millis_count 36 | 37 | 38 | // Default to using PROGMEM, since TEENSY3 provides it 39 | // even though all it does is ignore it. Just being 40 | // conservative here in case TEENSY3 changes. 41 | #ifndef FASTLED_USE_PROGMEM 42 | #define FASTLED_USE_PROGMEM 1 43 | #endif 44 | 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/k20/smartmatrix_t3.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_SMARTMATRIX_T3_H 2 | #define __INC_SMARTMATRIX_T3_H 3 | 4 | #ifdef SmartMatrix_h 5 | #include 6 | 7 | FASTLED_NAMESPACE_BEGIN 8 | 9 | extern SmartMatrix *pSmartMatrix; 10 | 11 | // note - dmx simple must be included before FastSPI for this code to be enabled 12 | class CSmartMatrixController : public CPixelLEDController { 13 | SmartMatrix matrix; 14 | 15 | public: 16 | // initialize the LED controller 17 | virtual void init() { 18 | // Initialize 32x32 LED Matrix 19 | matrix.begin(); 20 | matrix.setBrightness(255); 21 | matrix.setColorCorrection(ccNone); 22 | 23 | // Clear screen 24 | clearLeds(0); 25 | matrix.swapBuffers(); 26 | pSmartMatrix = &matrix; 27 | } 28 | 29 | virtual void showPixels(PixelController & pixels) { 30 | if(SMART_MATRIX_CAN_TRIPLE_BUFFER) { 31 | rgb24 *md = matrix.getRealBackBuffer(); 32 | } else { 33 | rgb24 *md = matrix.backBuffer(); 34 | } 35 | while(pixels.has(1)) { 36 | md->red = pixels.loadAndScale0(); 37 | md->green = pixels.loadAndScale1(); 38 | md->blue = pixels.loadAndScale2(); 39 | md++; 40 | pixels.advanceData(); 41 | pixels.stepDithering(); 42 | } 43 | matrix.swapBuffers(); 44 | if(SMART_MATRIX_CAN_TRIPLE_BUFFER && pixels.advanceBy() > 0) { 45 | matrix.setBackBuffer(pixels.mData); 46 | } 47 | } 48 | 49 | }; 50 | 51 | FASTLED_NAMESPACE_END 52 | 53 | #endif 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/k20/ws2812serial_controller.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_WS2812SERIAL_CONTROLLER_H 2 | #define __INC_WS2812SERIAL_CONTROLLER_H 3 | 4 | #ifdef USE_WS2812SERIAL 5 | 6 | FASTLED_NAMESPACE_BEGIN 7 | 8 | template 9 | class CWS2812SerialController : public CPixelLEDController { 10 | WS2812Serial *pserial; 11 | uint8_t *drawbuffer,*framebuffer; 12 | 13 | void _init(int nLeds) { 14 | if (pserial == NULL) { 15 | drawbuffer = (uint8_t*)malloc(nLeds * 3); 16 | framebuffer = (uint8_t*)malloc(nLeds * 12); 17 | pserial = new WS2812Serial(nLeds, framebuffer, drawbuffer, DATA_PIN, WS2812_RGB); 18 | pserial->begin(); 19 | } 20 | } 21 | public: 22 | CWS2812SerialController() { pserial = NULL; } 23 | 24 | virtual void init() { /* do nothing yet */ } 25 | 26 | virtual void showPixels(PixelController & pixels) { 27 | _init(pixels.size()); 28 | 29 | uint8_t *p = drawbuffer; 30 | 31 | while(pixels.has(1)) { 32 | *p++ = pixels.loadAndScale0(); 33 | *p++ = pixels.loadAndScale1(); 34 | *p++ = pixels.loadAndScale2(); 35 | pixels.stepDithering(); 36 | pixels.advanceData(); 37 | } 38 | pserial->show(); 39 | } 40 | 41 | }; 42 | 43 | FASTLED_NAMESPACE_END 44 | 45 | #endif // USE_WS2812SERIAL 46 | #endif // __INC_WS2812SERIAL_CONTROLLER_H 47 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/k66/fastled_arm_k66.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_K66_H 2 | #define __INC_FASTLED_ARM_K66_H 3 | 4 | // Include the k66 headers 5 | #include "fastpin_arm_k66.h" 6 | #include "fastspi_arm_k66.h" 7 | #include "../k20/octows2811_controller.h" 8 | #include "../k20/ws2812serial_controller.h" 9 | #include "../k20/smartmatrix_t3.h" 10 | #include "clockless_arm_k66.h" 11 | #include "clockless_block_arm_k66.h" 12 | 13 | #endif 14 | 15 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/k66/led_sysdefs_arm_k66.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_K66_H 2 | #define __INC_LED_SYSDEFS_ARM_K66_H 3 | 4 | #define FASTLED_TEENSY3 5 | #define FASTLED_ARM 6 | 7 | #ifndef INTERRUPT_THRESHOLD 8 | #define INTERRUPT_THRESHOLD 1 9 | #endif 10 | 11 | // Default to allowing interrupts 12 | #ifndef FASTLED_ALLOW_INTERRUPTS 13 | #define FASTLED_ALLOW_INTERRUPTS 1 14 | #endif 15 | 16 | #if FASTLED_ALLOW_INTERRUPTS == 1 17 | #define FASTLED_ACCURATE_CLOCK 18 | #endif 19 | 20 | #if (F_CPU == 192000000) 21 | #define CLK_DBL 1 22 | #endif 23 | 24 | // Get some system include files 25 | #include 26 | #include // for cli/se definitions 27 | 28 | // Define the register types 29 | #if defined(ARDUINO) // && ARDUINO < 150 30 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 31 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 32 | #endif 33 | 34 | extern volatile uint32_t systick_millis_count; 35 | # define MS_COUNTER systick_millis_count 36 | 37 | 38 | // Default to using PROGMEM, since TEENSY3 provides it 39 | // even though all it does is ignore it. Just being 40 | // conservative here in case TEENSY3 changes. 41 | #ifndef FASTLED_USE_PROGMEM 42 | #define FASTLED_USE_PROGMEM 1 43 | #endif 44 | 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/kl26/fastled_arm_kl26.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_KL26_H 2 | #define __INC_FASTLED_ARM_KL26_H 3 | 4 | // Include the k20 headers 5 | #include "fastpin_arm_kl26.h" 6 | #include "fastspi_arm_kl26.h" 7 | #include "clockless_arm_kl26.h" 8 | #include "../k20/ws2812serial_controller.h" 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/kl26/led_sysdefs_arm_kl26.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_KL26_H 2 | #define __INC_LED_SYSDEFS_ARM_KL26_H 3 | 4 | #define FASTLED_TEENSYLC 5 | #define FASTLED_ARM 6 | #define FASTLED_ARM_M0_PLUS 7 | 8 | #ifndef INTERRUPT_THRESHOLD 9 | #define INTERRUPT_THRESHOLD 1 10 | #endif 11 | 12 | #define FASTLED_SPI_BYTE_ONLY 13 | 14 | // Default to allowing interrupts 15 | #ifndef FASTLED_ALLOW_INTERRUPTS 16 | #define FASTLED_ALLOW_INTERRUPTS 1 17 | #endif 18 | 19 | #if FASTLED_ALLOW_INTERRUPTS == 1 20 | #define FASTLED_ACCURATE_CLOCK 21 | #endif 22 | 23 | #if (F_CPU == 96000000) 24 | #define CLK_DBL 1 25 | #endif 26 | 27 | // Get some system include files 28 | #include 29 | #include // for cli/se definitions 30 | 31 | // Define the register types 32 | #if defined(ARDUINO) // && ARDUINO < 150 33 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 34 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 35 | #endif 36 | 37 | extern volatile uint32_t systick_millis_count; 38 | # define MS_COUNTER systick_millis_count 39 | 40 | // Default to using PROGMEM since TEENSYLC provides it 41 | // even though all it does is ignore it. Just being 42 | // conservative here in case TEENSYLC changes. 43 | #ifndef FASTLED_USE_PROGMEM 44 | #define FASTLED_USE_PROGMEM 1 45 | #endif 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/nrf51/fastled_arm_nrf51.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_NRF51_H 2 | #define __INC_FASTLED_ARM_NRF51_H 3 | 4 | // Include the k20 headers 5 | #include "fastpin_arm_nrf51.h" 6 | #include "fastspi_arm_nrf51.h" 7 | #include "clockless_arm_nrf51.h" 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/nrf51/led_sysdefs_arm_nrf51.h: -------------------------------------------------------------------------------- 1 | #ifndef __LED_SYSDEFS_ARM_NRF51 2 | #define __LED_SYSDEFS_ARM_NRF51 3 | 4 | #ifndef NRF51 5 | #define NRF51 6 | #endif 7 | 8 | #define LED_TIMER NRF_TIMER1 9 | #define FASTLED_NO_PINMAP 10 | #define FASTLED_HAS_CLOCKLESS 11 | 12 | #define FASTLED_SPI_BYTE_ONLY 13 | 14 | #define FASTLED_ARM 15 | #define FASTLED_ARM_M0 16 | 17 | #ifndef F_CPU 18 | #define F_CPU 16000000 19 | #endif 20 | 21 | #include 22 | #include 23 | #include 24 | 25 | typedef volatile uint32_t RoReg; 26 | typedef volatile uint32_t RwReg; 27 | typedef uint32_t prog_uint32_t; 28 | typedef uint8_t boolean; 29 | 30 | #define PROGMEM 31 | #define NO_PROGMEM 32 | #define NEED_CXX_BITS 33 | 34 | // Default to NOT using PROGMEM here 35 | #ifndef FASTLED_USE_PROGMEM 36 | #define FASTLED_USE_PROGMEM 0 37 | #endif 38 | 39 | #ifndef FASTLED_ALLOW_INTERRUPTS 40 | #define FASTLED_ALLOW_INTERRUPTS 1 41 | #endif 42 | 43 | #define cli() __disable_irq(); 44 | #define sei() __enable_irq(); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/sam/fastled_arm_sam.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_SAM_H 2 | #define __INC_FASTLED_ARM_SAM_H 3 | 4 | // Include the sam headers 5 | #include "fastpin_arm_sam.h" 6 | #include "fastspi_arm_sam.h" 7 | #include "clockless_arm_sam.h" 8 | #include "clockless_block_arm_sam.h" 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/sam/led_sysdefs_arm_sam.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_SAM_H 2 | #define __INC_LED_SYSDEFS_ARM_SAM_H 3 | 4 | 5 | #define FASTLED_ARM 6 | 7 | // Setup DUE timer defines/channels/etc... 8 | #ifndef DUE_TIMER_CHANNEL 9 | #define DUE_TIMER_GROUP 0 10 | #endif 11 | 12 | #ifndef DUE_TIMER_CHANNEL 13 | #define DUE_TIMER_CHANNEL 0 14 | #endif 15 | 16 | #define DUE_TIMER ((DUE_TIMER_GROUP==0) ? TC0 : ((DUE_TIMER_GROUP==1) ? TC1 : TC2)) 17 | #define DUE_TIMER_ID (ID_TC0 + (DUE_TIMER_GROUP*3) + DUE_TIMER_CHANNEL) 18 | #define DUE_TIMER_VAL (DUE_TIMER->TC_CHANNEL[DUE_TIMER_CHANNEL].TC_CV << 1) 19 | #define DUE_TIMER_RUNNING ((DUE_TIMER->TC_CHANNEL[DUE_TIMER_CHANNEL].TC_SR & TC_SR_CLKSTA) != 0) 20 | 21 | #ifndef INTERRUPT_THRESHOLD 22 | #define INTERRUPT_THRESHOLD 1 23 | #endif 24 | 25 | // Default to allowing interrupts 26 | #ifndef FASTLED_ALLOW_INTERRUPTS 27 | #define FASTLED_ALLOW_INTERRUPTS 1 28 | #endif 29 | 30 | #if FASTLED_ALLOW_INTERRUPTS == 1 31 | #define FASTLED_ACCURATE_CLOCK 32 | #endif 33 | 34 | // reusing/abusing cli/sei defs for due 35 | #define cli() __disable_irq(); __disable_fault_irq(); 36 | #define sei() __enable_irq(); __enable_fault_irq(); 37 | 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/stm32/fastled_arm_stm32.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_ARM_SAM_H 2 | #define __INC_FASTLED_ARM_SAM_H 3 | 4 | // Include the sam headers 5 | #include "fastpin_arm_stm32.h" 6 | // #include "fastspi_arm_stm32.h" 7 | #include "clockless_arm_stm32.h" 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/arm/stm32/led_sysdefs_arm_stm32.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_LED_SYSDEFS_ARM_SAM_H 2 | #define __INC_LED_SYSDEFS_ARM_SAM_H 3 | 4 | #include 5 | 6 | #if defined(STM32F10X_MD) 7 | 8 | #define FASTLED_NAMESPACE_BEGIN namespace NSFastLED { 9 | #define FASTLED_NAMESPACE_END } 10 | #define FASTLED_USING_NAMESPACE using namespace NSFastLED; 11 | 12 | // reusing/abusing cli/sei defs for due 13 | #define cli() __disable_irq(); __disable_fault_irq(); 14 | #define sei() __enable_irq(); __enable_fault_irq(); 15 | 16 | #elif defined (__STM32F1__) 17 | 18 | #include "cm3_regs.h" 19 | 20 | #define cli() nvic_globalirq_disable() 21 | #define sei() nvic_globalirq_enable() 22 | 23 | #else 24 | #error "Platform not supported" 25 | #endif 26 | 27 | #define FASTLED_ARM 28 | 29 | #ifndef INTERRUPT_THRESHOLD 30 | #define INTERRUPT_THRESHOLD 1 31 | #endif 32 | 33 | // Default to allowing interrupts 34 | #ifndef FASTLED_ALLOW_INTERRUPTS 35 | #define FASTLED_ALLOW_INTERRUPTS 0 36 | #endif 37 | 38 | #if FASTLED_ALLOW_INTERRUPTS == 1 39 | #define FASTLED_ACCURATE_CLOCK 40 | #endif 41 | 42 | // pgmspace definitions 43 | #define PROGMEM 44 | #define pgm_read_dword(addr) (*(const unsigned long *)(addr)) 45 | #define pgm_read_dword_near(addr) pgm_read_dword(addr) 46 | 47 | // Default to NOT using PROGMEM here 48 | #ifndef FASTLED_USE_PROGMEM 49 | #define FASTLED_USE_PROGMEM 0 50 | #endif 51 | 52 | // data type defs 53 | typedef volatile uint8_t RoReg; /**< Read only 8-bit register (volatile const unsigned int) */ 54 | typedef volatile uint8_t RwReg; /**< Read-Write 8-bit register (volatile unsigned int) */ 55 | 56 | #define FASTLED_NO_PINMAP 57 | 58 | #ifndef F_CPU 59 | #define F_CPU 72000000 60 | #endif 61 | #endif 62 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/avr/fastled_avr.h: -------------------------------------------------------------------------------- 1 | #ifndef __INC_FASTLED_AVR_H 2 | #define __INC_FASTLED_AVR_H 3 | 4 | #include "fastpin_avr.h" 5 | #include "fastspi_avr.h" 6 | #include "clockless_trinket.h" 7 | 8 | // Default to using PROGMEM 9 | #ifndef FASTLED_USE_PROGMEM 10 | #define FASTLED_USE_PROGMEM 1 11 | #endif 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/esp/32/fastled_esp32.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "fastpin_esp32.h" 4 | #include "clockless_esp32.h" 5 | // #include "clockless_block_esp32.h" 6 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/esp/32/led_sysdefs_esp32.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef ESP32 4 | #define ESP32 5 | #endif 6 | 7 | #define FASTLED_ESP32 8 | 9 | // Use system millis timer 10 | #define FASTLED_HAS_MILLIS 11 | 12 | typedef volatile uint32_t RoReg; 13 | typedef volatile uint32_t RwReg; 14 | typedef unsigned long prog_uint32_t; 15 | typedef bool boolean; 16 | 17 | // Default to NOT using PROGMEM here 18 | #ifndef FASTLED_USE_PROGMEM 19 | # define FASTLED_USE_PROGMEM 0 20 | #endif 21 | 22 | #ifndef FASTLED_ALLOW_INTERRUPTS 23 | # define FASTLED_ALLOW_INTERRUPTS 1 24 | # define INTERRUPT_THRESHOLD 0 25 | #endif 26 | 27 | #define NEED_CXX_BITS 28 | 29 | // These can be overridden 30 | # define FASTLED_ESP32_RAW_PIN_ORDER 31 | 32 | // #define cli() os_intr_lock(); 33 | // #define sei() os_intr_lock(); 34 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/esp/8266/fastled_esp8266.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "fastpin_esp8266.h" 4 | #include "clockless_esp8266.h" 5 | #include "clockless_block_esp8266.h" 6 | -------------------------------------------------------------------------------- /lib/FastLED/platforms/esp/8266/led_sysdefs_esp8266.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef ESP8266 4 | #define ESP8266 5 | #endif 6 | 7 | #define FASTLED_ESP8266 8 | 9 | // Use system millis timer 10 | #define FASTLED_HAS_MILLIS 11 | 12 | typedef volatile uint32_t RoReg; 13 | typedef volatile uint32_t RwReg; 14 | typedef uint32_t prog_uint32_t; 15 | //typedef uint8_t boolean; 16 | 17 | // Default to NOT using PROGMEM here 18 | #ifndef FASTLED_USE_PROGMEM 19 | # define FASTLED_USE_PROGMEM 0 20 | #endif 21 | 22 | #ifndef FASTLED_ALLOW_INTERRUPTS 23 | # define FASTLED_ALLOW_INTERRUPTS 1 24 | # define INTERRUPT_THRESHOLD 0 25 | #endif 26 | 27 | #define NEED_CXX_BITS 28 | 29 | // These can be overridden 30 | #if !defined(FASTLED_ESP8266_RAW_PIN_ORDER) && !defined(FASTLED_ESP8266_NODEMCU_PIN_ORDER) && !defined(FASTLED_ESP8266_D1_PIN_ORDER) 31 | # ifdef ARDUINO_ESP8266_NODEMCU 32 | # define FASTLED_ESP8266_NODEMCU_PIN_ORDER 33 | # else 34 | # define FASTLED_ESP8266_RAW_PIN_ORDER 35 | # endif 36 | #endif 37 | 38 | // #define cli() os_intr_lock(); 39 | // #define sei() os_intr_lock(); 40 | -------------------------------------------------------------------------------- /lib/FastLED/preview_changes.txt: -------------------------------------------------------------------------------- 1 | FastLED 3.1 preview changes: 2 | * UART in SPI mode support on AVR 3 | * Support for using both hardware SPI pinsets on the Teensy 3.x - 11/13 and 7/14. 4 | * Added UCS1904 support 5 | * Better AVR cycle counting 6 | * Split WS2812/WS2811 timings 7 | * Added DOTSTAR definition for adafruit dotstar pixels (aka APA102) 8 | * 8-way parallel output on teensy 3, 3.1 (portc,portd), due/digix (porta, portb, portd) 9 | * 12-way parallel output on teensy 3, 3.1 (portc) 10 | * 16-way parallel output on teensy 3, 3.1 (portc & portd paired) 11 | * refresh rate limiting 12 | * interrupt friendly code on teensy 3/3.1 13 | * -interrupt friendly code on AVR- <-- disabled for now 14 | * interrupt friendly code on the due 15 | * code re-org for future wider platform support 16 | * Spark Core support 17 | * arduino zero support (no hardware spi yet) 18 | * greatly improved clockless output for avr 19 | * greatly improved clockless output for arm m0 boards 20 | -------------------------------------------------------------------------------- /lib/LDR/keywords.txt: -------------------------------------------------------------------------------- 1 | LightDependentResistor KEYWORD1 2 | getCurrentLux KEYWORD2 3 | getCurrentFootCandles KEYWORD2 4 | luxToFootCandles KEYWORD2 5 | footCandlesToLux KEYWORD2 6 | setPhotocellPositionOnGround KEYWORD2 7 | updatePhotocellParameters KEYWORD2 8 | GL5516 KEYWORD2 9 | GL5528 KEYWORD2 10 | GL5537_1 KEYWORD2 11 | GL5537_2 KEYWORD2 12 | GL5539 KEYWORD2 13 | GL5549 KEYWORD2 -------------------------------------------------------------------------------- /lib/NeoMatrix/README.md: -------------------------------------------------------------------------------- 1 | FastLED NeoMatrix 2 | ================= 3 | 4 | Adafruit_GFX-compatible library for NeoPixel matrices and grids. Controls single and tiled NeoPixel displays. 5 | This library requires FastLED and Adafruit_GFX libraries. 6 | 7 | Please see https://learn.adafruit.com/adafruit-neopixel-uberguide/neomatrix-library for how to use this library. 8 | 9 | Example code: https://github.com/marcmerlin/FastLED_NeoMatrix/blob/master/examples/MatrixGFXDemo/MatrixGFXDemo.ino 10 | 11 | More complex example code: https://github.com/marcmerlin/NeoMatrix-FastLED-IR 12 | 13 | This code was taken from Adafruit_NeoMatrix and adapted to work with the more powerful FastLED library. 14 | The reasons for using FastLED instead of Adafruit::Neopixel as a backend, include: 15 | * FastLED supports more microcontrollers 16 | * Better support for ESP32 than Adafruit::Neopixel 17 | * Support for parallel output on some chips for faster refresh rate: https://github.com/FastLED/FastLED/wiki/Parallel-Output 18 | * Support for interrupts to allow things like Infrared to work while updating strips 19 | * Support for many more led/pixel hardware: https://github.com/FastLED/FastLED/wiki/Chipset-reference 20 | 21 | Video demo: https://www.youtube.com/watch?v=tU_wkrrv_4A 22 | 23 | ![164_20170424_adafruit_gfx_on_neomatrix_32x32](https://user-images.githubusercontent.com/1369412/38774532-5d6b0f2e-4020-11e8-86ef-afdffbeb1e1d.jpg) 24 | ![171_20170424_adafruit_gfx_on_neomatrix_32x32](https://user-images.githubusercontent.com/1369412/38774533-5d83d6bc-4020-11e8-95bb-417368143d70.jpg) 25 | -------------------------------------------------------------------------------- /lib/NeoMatrix/extras/gamma.c: -------------------------------------------------------------------------------- 1 | #ifndef ARDUINO 2 | // THIS IS NOT ARDUINO CODE -- DON'T INCLUDE IN YOUR SKETCH. It's a 3 | // command-line tool that outputs a gamma correction table to stdout; 4 | // redirect or copy and paste the results into header file for the 5 | // NeoMatrix library code. 6 | // Optional 1 parameter: bit depth (default=5, for 32 output levels). 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | #define GAMMA 2.6 13 | 14 | int planes = 5; 15 | 16 | int main(int argc, char *argv[]) 17 | { 18 | int i, maxval; 19 | 20 | if(argc > 1) planes = atoi(argv[1]); 21 | 22 | maxval = (1 << planes) - 1; 23 | 24 | (void)printf( 25 | "#ifndef _GAMMA_H_\n" 26 | "#define _GAMMA_H_\n" 27 | "\n" 28 | "#ifdef __AVR\n" 29 | " #include \n" 30 | "#else\n" 31 | " #ifndef PROGMEM\n" 32 | " #define PROGMEM\n" 33 | " #endif\n" 34 | "#endif\n" 35 | "\n" 36 | "static const uint8_t PROGMEM\n" 37 | " gamma%d[] = {\n" 38 | " ", planes); 39 | 40 | for(i=0; i<=maxval; i++) { 41 | (void)printf("%3d", 42 | (int)(pow((float)i / (float)maxval, GAMMA) * 43 | (float)255.0 + 0.5)); 44 | if(i < maxval) (void)printf(((i & 15) == 15) ? ",\n " : ","); 45 | } 46 | 47 | (void)puts( 48 | "\n};\n\n" 49 | "#endif // _GAMMA_H_"); 50 | 51 | return 0; 52 | } 53 | 54 | #endif /* !ARDUINO */ 55 | -------------------------------------------------------------------------------- /lib/NeoMatrix/gamma.h: -------------------------------------------------------------------------------- 1 | #ifndef _GAMMA_H_ 2 | #define _GAMMA_H_ 3 | 4 | #ifdef __AVR 5 | #include 6 | #elif defined(ESP8266) 7 | #include 8 | #else 9 | #ifndef PROGMEM 10 | #define PROGMEM 11 | #endif 12 | #endif 13 | 14 | static const uint8_t PROGMEM 15 | gamma5[] = { 16 | 0x00,0x01,0x02,0x03,0x05,0x07,0x09,0x0b, 17 | 0x0e,0x11,0x14,0x18,0x1d,0x22,0x28,0x2e, 18 | 0x36,0x3d,0x46,0x4f,0x59,0x64,0x6f,0x7c, 19 | 0x89,0x97,0xa6,0xb6,0xc7,0xd9,0xeb,0xff }, 20 | gamma6[] = { 21 | 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x08, 22 | 0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x12,0x13, 23 | 0x15,0x17,0x19,0x1b,0x1d,0x20,0x22,0x25, 24 | 0x27,0x2a,0x2d,0x30,0x33,0x37,0x3a,0x3e, 25 | 0x41,0x45,0x49,0x4d,0x52,0x56,0x5b,0x5f, 26 | 0x64,0x69,0x6e,0x74,0x79,0x7f,0x85,0x8b, 27 | 0x91,0x97,0x9d,0xa4,0xab,0xb2,0xb9,0xc0, 28 | 0xc7,0xcf,0xd6,0xde,0xe6,0xee,0xf7,0xff }; 29 | 30 | #endif // _GAMMA_H_ 31 | -------------------------------------------------------------------------------- /lib/NeoMatrix/library.properties: -------------------------------------------------------------------------------- 1 | name=FastLED NeoMatrix 2 | version=1.0 3 | author=Marc Merlin 4 | maintainer=Marc MERLIN 5 | sentence=Adafruit_GFX-compatible library for NeoPixel grids 6 | paragraph=Adafruit_GFX-compatible library for NeoPixel grids 7 | category=Display 8 | url=https://github.com/marcmerlin/FastLED_NeoMatrix 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/PubSubClient/.library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PubSubClient", 3 | "keywords": [ 4 | "ethernet", 5 | "mqtt", 6 | "m2m", 7 | "iot" 8 | ], 9 | "description": "A client library for MQTT messaging. MQTT is a lightweight messaging protocol ideal for small devices. This library allows you to send and receive MQTT messages. It supports the latest MQTT 3.1.1 protocol and can be configured to use the older MQTT 3.1 if needed. It supports all Arduino Ethernet Client compatible hardware, including the Intel Galileo/Edison, ESP8266 and TI CC3000.", 10 | "repository": { 11 | "type": "git", 12 | "url": "https://github.com/knolleary/pubsubclient.git" 13 | }, 14 | "version": "2.7", 15 | "examples": "examples/*/*.ino", 16 | "frameworks": [ 17 | "arduino" 18 | ], 19 | "platforms": [ 20 | "atmelavr", 21 | "espressif8266" 22 | ], 23 | "export": { 24 | "exclude": "tests" 25 | }, 26 | "authors": [ 27 | { 28 | "email": "nick.oleary@gmail.com", 29 | "url": "https://github.com/knolleary", 30 | "maintainer": false, 31 | "name": "Nick O'Leary" 32 | } 33 | ], 34 | "id": 89 35 | } -------------------------------------------------------------------------------- /lib/PubSubClient/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2008-2015 Nicholas O'Leary 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /lib/PubSubClient/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For PubSubClient 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | PubSubClient KEYWORD1 10 | 11 | ####################################### 12 | # Methods and Functions (KEYWORD2) 13 | ####################################### 14 | 15 | connect KEYWORD2 16 | disconnect KEYWORD2 17 | publish KEYWORD2 18 | publish_P KEYWORD2 19 | beginPublish KEYWORD2 20 | endPublish KEYWORD2 21 | write KEYWORD2 22 | subscribe KEYWORD2 23 | unsubscribe KEYWORD2 24 | loop KEYWORD2 25 | connected KEYWORD2 26 | setServer KEYWORD2 27 | setCallback KEYWORD2 28 | setClient KEYWORD2 29 | setStream KEYWORD2 30 | 31 | ####################################### 32 | # Constants (LITERAL1) 33 | ####################################### 34 | -------------------------------------------------------------------------------- /lib/PubSubClient/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PubSubClient", 3 | "keywords": "ethernet, mqtt, m2m, iot", 4 | "description": "A client library for MQTT messaging. MQTT is a lightweight messaging protocol ideal for small devices. This library allows you to send and receive MQTT messages. It supports the latest MQTT 3.1.1 protocol and can be configured to use the older MQTT 3.1 if needed. It supports all Arduino Ethernet Client compatible hardware, including the Intel Galileo/Edison, ESP8266 and TI CC3000.", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/knolleary/pubsubclient.git" 8 | }, 9 | "version": "2.7", 10 | "exclude": "tests", 11 | "examples": "examples/*/*.ino", 12 | "frameworks": "arduino", 13 | "platforms": [ 14 | "atmelavr", 15 | "espressif" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /lib/PubSubClient/library.properties: -------------------------------------------------------------------------------- 1 | name=PubSubClient 2 | version=2.7 3 | author=Nick O'Leary 4 | maintainer=Nick O'Leary 5 | sentence=A client library for MQTT messaging. 6 | paragraph=MQTT is a lightweight messaging protocol ideal for small devices. This library allows you to send and receive MQTT messages. It supports the latest MQTT 3.1.1 protocol and can be configured to use the older MQTT 3.1 if needed. It supports all Arduino Ethernet Client compatible hardware, including the Intel Galileo/Edison, ESP8266 and TI CC3000. 7 | category=Communication 8 | url=http://pubsubclient.knolleary.net 9 | architectures=* 10 | -------------------------------------------------------------------------------- /lib/RTClib/library.properties: -------------------------------------------------------------------------------- 1 | name=RTClib 2 | version=1.7.0 3 | author=Adafruit 4 | maintainer=Adafruit 5 | sentence=A fork of Jeelab's fantastic RTC library 6 | paragraph=A fork of Jeelab's fantastic RTC library 7 | category=Timing 8 | url=https://github.com/adafruit/RTClib 9 | architectures=* 10 | depends=TinyWireM 11 | -------------------------------------------------------------------------------- /lib/RTClib/license.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Adafruit Industries 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/WiFiManager/.gitignore: -------------------------------------------------------------------------------- 1 | platformio.ini 2 | -------------------------------------------------------------------------------- /lib/WiFiManager/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 tzapu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /lib/WiFiManager/extras/png_signal_strength_master.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/lib/WiFiManager/extras/png_signal_strength_master.png -------------------------------------------------------------------------------- /lib/WiFiManager/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map For WifiManager 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | WiFiManager KEYWORD1 10 | WiFiManagerParameter KEYWORD1 11 | 12 | 13 | ####################################### 14 | # Methods and Functions (KEYWORD2) 15 | ####################################### 16 | autoConnect KEYWORD2 17 | getSSID KEYWORD2 18 | getPassword KEYWORD2 19 | getConfigPortalSSID KEYWORD2 20 | resetSettings KEYWORD2 21 | setConfigPortalTimeout KEYWORD2 22 | setConnectTimeout KEYWORD2 23 | setDebugOutput KEYWORD2 24 | setMinimumSignalQuality KEYWORD2 25 | setAPStaticIPConfig KEYWORD2 26 | setSTAStaticIPConfig KEYWORD2 27 | setAPCallback KEYWORD2 28 | setSaveConfigCallback KEYWORD2 29 | addParameter KEYWORD2 30 | getID KEYWORD2 31 | getValue KEYWORD2 32 | getPlaceholder KEYWORD2 33 | getValueLength KEYWORD2 34 | 35 | ####################################### 36 | # Constants (LITERAL1) 37 | ####################################### 38 | 39 | # LITERAL1 40 | -------------------------------------------------------------------------------- /lib/WiFiManager/library.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "WifiManager", 3 | "keywords": "wifi,wi-fi,esp,esp8266,esp32,espressif8266,espressif32,nodemcu,wemos,arduino", 4 | "description": "WiFi Configuration manager with web configuration portal for ESP boards", 5 | "authors": 6 | [ 7 | { 8 | "name": "tzapu", 9 | "url": "https://github.com/tzapu" 10 | }, 11 | { 12 | "name": "tablatronix", 13 | "url": "https://github.com/tablatronix", 14 | "maintainer": true 15 | } 16 | ], 17 | "repository": 18 | { 19 | "type": "git", 20 | "url": "https://github.com/tzapu/WiFiManager.git" 21 | }, 22 | "frameworks": "arduino", 23 | "platforms": 24 | [ 25 | "espressif8266", 26 | "espressif32" 27 | ], 28 | "version": "1.0.0" 29 | } 30 | -------------------------------------------------------------------------------- /lib/WiFiManager/library.properties: -------------------------------------------------------------------------------- 1 | name=WiFiManager 2 | version=1.0.0 3 | author=tzapu,tablatronix 4 | maintainer=tablatronix 5 | sentence=WiFi Configuration manager with web configuration portal for ESP boards 6 | paragraph=Library for configuring ESP8266/ESP32 modules WiFi credentials and custom parameters at runtime. 7 | category=Communication 8 | url=https://github.com/tzapu/WiFiManager.git 9 | architectures=esp8266,esp32 10 | -------------------------------------------------------------------------------- /pixel clock offline v1.1.1PCB 及制板文件.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/pixel clock offline v1.1.1PCB 及制板文件.rar -------------------------------------------------------------------------------- /pixel clock v1.0.1 PCB 及制板文件.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/pixel clock v1.0.1 PCB 及制板文件.rar -------------------------------------------------------------------------------- /platformio.ini: -------------------------------------------------------------------------------- 1 | ; PlatformIO Project Configuration File 2 | ; 3 | ; Build options: build flags, source filter 4 | ; Upload options: custom upload port, speed and extra flags 5 | ; Library options: dependencies, extra library storages 6 | ; Advanced options: extra scripting 7 | ; 8 | ; Please visit documentation for the other options and examples 9 | ; http://docs.platformio.org/page/projectconf.html 10 | 11 | [platformio] 12 | default_envs = nodemcuv2 13 | 14 | [common] 15 | lib_deps_builtin = 16 | SPI 17 | 18 | lib_deps= 19 | BME280_Light 20 | 5426 21 | 566 22 | [env:nodemcuv2] 23 | platform = espressif8266@2.6.3 24 | #board = nodemcuv2 25 | board = d1_mini 26 | build_flags = 27 | -DMQTT_MAX_PACKET_SIZE=3000 28 | -Wl,-Teagle.flash.4m1m.ld 29 | board_build.f_cpu = 80000000L 30 | framework = arduino 31 | monitor_speed = 115200 32 | upload_speed = 921600 33 | #upload_port = COM6 34 | lib_deps = 35 | ${common.lib_deps_builtin} 36 | ${common.lib_deps} 37 | -------------------------------------------------------------------------------- /release/firmware.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/release/firmware.bin -------------------------------------------------------------------------------- /src/MenueControl/MenueControl.h: -------------------------------------------------------------------------------- 1 | #ifndef __MenueControl_H 2 | #define __MenueControl_H 3 | 4 | #include 5 | 6 | enum ActionStateType 7 | { 8 | AST_enter = 0, 9 | AST_exit, 10 | AST_previous, 11 | AST_next 12 | }; 13 | 14 | class MenueControl 15 | { 16 | private: 17 | bool m_isMenueMode = false; 18 | 19 | uint8 menueStatus = 0; 20 | 21 | void menueShow(ActionStateType as); 22 | 23 | void menueRender(); 24 | 25 | void menueAction(ActionStateType as); 26 | 27 | public: 28 | 29 | bool isMenueMode(); 30 | 31 | void btnPressed(int btn,int pressState); 32 | 33 | }; 34 | 35 | #endif // __MenueControl_H 36 | -------------------------------------------------------------------------------- /侧面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/侧面.jpg -------------------------------------------------------------------------------- /正面.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/illusionscitech/pixel-clock-offline/d3130eaf75e6a7d7fa814b304a1c15b8f6f9d053/正面.jpg --------------------------------------------------------------------------------