From 5c07dcd8db60f1ac12ec6a58868ee7e896327a63 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Sun, 16 Feb 2025 17:28:23 -0700 Subject: [PATCH 1/4] add a compile check action --- .github/workflows/compile-sketch.yml | 127 +++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 .github/workflows/compile-sketch.yml diff --git a/.github/workflows/compile-sketch.yml b/.github/workflows/compile-sketch.yml new file mode 100644 index 0000000..24d99c4 --- /dev/null +++ b/.github/workflows/compile-sketch.yml @@ -0,0 +1,127 @@ +name: Cross-compilation + +on: + push: + branches: + - main + workflow_dispatch: + + +jobs: + compile-sketch: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + matrix: + board: + # Uno + # https://github.com/arduino/ArduinoCore-avr/blob/master/boards.txt + - fqbn: arduino:avr:mega + # platforms: | + name: arduino:avr + source-url: https://downloads.arduino.cc/packages/package_index.json + + # ESP32 + # https://github.com/espressif/arduino-esp32/blob/master/boards.txt + - fqbn: esp32:esp32:esp32 + # platforms: | + name: esp32:esp32 + source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json + + # ESP32-S2 + # https://github.com/espressif/arduino-esp32/blob/master/boards.txt + - fqbn: esp32:esp32:esp32s2 + # platforms: | + name: esp32:esp32 + source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json + + # ESP32-C3 + # https://github.com/espressif/arduino-esp32/blob/master/boards.txt + - fqbn: esp32:esp32:esp32c3 + # platforms: | + name: esp32:esp32 + source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json + + # Artemis / Apollo3 + # https://github.com/sparkfun/Arduino_Apollo3/blob/main/boards.txt + - fqbn: SparkFun:apollo3:sfe_artemis_atp + # platforms: | + name: SparkFun:apollo3 + source-url: https://raw.githubusercontent.com/sparkfun/Arduino_Apollo3/master/package_sparkfun_apollo3_index.json + + # ESP8266 + # https://github.com/esp8266/Arduino/blob/master/boards.txt + - fqbn: esp8266:esp8266:thingdev + # platforms: | + name: esp8266:esp8266 + source-url: https://arduino.esp8266.com/stable/package_esp8266com_index.json + + # SAMD21 + # https://github.com/arduino/ArduinoCore-samd/blob/master/boards.txt + - fqbn: arduino:samd:mkr1000 + # platforms: | + name: arduino:samd + source-url: https://downloads.arduino.cc/packages/package_index.json + + # Nano BLE 33 / nRF52840 + # https://github.com/arduino/ArduinoCore-mbed/blob/master/boards.txt + - fqbn: arduino:mbed:nano33ble + # platforms: | + name: arduino:mbed + source-url: https://downloads.arduino.cc/packages/package_index.json + + # RP2040 + # https://github.com/arduino/ArduinoCore-mbed/blob/master/boards.txt + - fqbn: rp2040:rp2040:sparkfun_promicrorp2040 + # platforms: | + name: rp2040:rp2040 + source-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json + + # RP2350 + # https://github.com/arduino/ArduinoCore-mbed/blob/master/boards.txt + - fqbn: rp2040:rp2040:sparkfun_promicrorp2350 + # platforms: | + name: rp2040:rp2040 + source-url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json + + # STM32 + # https://github.com/arduino/ArduinoCore-mbed/blob/master/boards.txt + - fqbn: STMicroelectronics:stm32:GenF4 + # platforms: | + name: STMicroelectronics:stm32 + source-url: https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Branch name + run: echo running on branch ${GITHUB_REF##*/} + + # Setup Arduino command line - install esp32 and all the libs flux needs + - name: Arduino - Install and setup the Arduino CLI + uses: arduino/setup-arduino-cli@v2 + + - name: Arduino - Start config file + run: arduino-cli config init --additional-urls ${{ matrix.board.source-url}} + + - name: Arduino - Update index + run: arduino-cli core update-index + + - name: Arduino - Install platform + run: arduino-cli core install ${{ matrix.board.name}} + + - name: Arduino - Install libraries + run: | + arduino-cli config set library.enable_unsafe_install true + arduino-cli version + arduino-cli lib install 'SparkFun Toolkit' + + - name: Compile Sketch + run: arduino-cli compile --fqbn ${{ matrix.board.fqbn }} examples/Example_01_Buzz --library . + + # outputs: + # report-artifact-name: ${{ steps.report-artifact-name.outputs.report-artifact-name }} + From eff83f761337c604bbb635637a44afe046ad75c8 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Mon, 17 Feb 2025 07:55:14 -0700 Subject: [PATCH 2/4] enabling show inherited members - should make docs easlier to follow for Arduino users --- docs/doxygen/doxygen-config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/doxygen/doxygen-config b/docs/doxygen/doxygen-config index 13e10e9..f4c5274 100644 --- a/docs/doxygen/doxygen-config +++ b/docs/doxygen/doxygen-config @@ -171,7 +171,7 @@ ALWAYS_DETAILED_SEC = YES # operators of the base classes will not be shown. # The default value is: NO. -INLINE_INHERITED_MEMB = NO +INLINE_INHERITED_MEMB = YES # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the From 14418ce59697fa951903f233d676334414b35c91 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Mon, 24 Feb 2025 14:41:01 -0700 Subject: [PATCH 3/4] change IDs to const and use normal typing -- ensures the proper method is selected on the bus --- src/sfTk/sfDevBuzzerRegisters.h | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/sfTk/sfDevBuzzerRegisters.h b/src/sfTk/sfDevBuzzerRegisters.h index 75e9d86..418cd4d 100644 --- a/src/sfTk/sfDevBuzzerRegisters.h +++ b/src/sfTk/sfDevBuzzerRegisters.h @@ -21,17 +21,15 @@ #include // Register Pointer Map -enum Qwiic_Buzzer_Register : uint8_t -{ - kSfeQwiicBuzzerRegId = 0x00, - kSfeQwiicBuzzerRegFirmwareMinor, - kSfeQwiicBuzzerRegFirmwareMajor, - kSfeQwiicBuzzerRegToneFrequencyMsb, - kSfeQwiicBuzzerRegToneFrequencyLsb, - kSfeQwiicBuzzerRegVolume, - kSfeQwiicBuzzerRegDurationMsb, - kSfeQwiicBuzzerRegDurationLsb, - kSfeQwiicBuzzerRegActive, - kSfeQwiicBuzzerRegSaveSettings, - kSfeQwiicBuzzerRegI2cAddress, -}; \ No newline at end of file + +const uint8_t kSfeQwiicBuzzerRegId = 0x00; +const uint8_t kSfeQwiicBuzzerRegFirmwareMinor = 0x01; +const uint8_t kSfeQwiicBuzzerRegFirmwareMajor = 0x02; +const uint8_t kSfeQwiicBuzzerRegToneFrequencyMsb = 0x03; +const uint8_t kSfeQwiicBuzzerRegToneFrequencyLsb = 0x04; +const uint8_t kSfeQwiicBuzzerRegVolume = 0x05; +const uint8_t kSfeQwiicBuzzerRegDurationMsb = 0x06; +const uint8_t kSfeQwiicBuzzerRegDurationLsb = 0x07; +const uint8_t kSfeQwiicBuzzerRegActive = 0x08; +const uint8_t kSfeQwiicBuzzerRegSaveSettings = 0x09; +const uint8_t kSfeQwiicBuzzerRegI2cAddress = 0x0A; From 529177ab34f98be2f06734437e908886182c38e4 Mon Sep 17 00:00:00 2001 From: Kirk Benell Date: Mon, 24 Feb 2025 14:41:21 -0700 Subject: [PATCH 4/4] port to the tookit unified API in v1.0 --- src/sfTk/sfDevBuzzer.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/sfTk/sfDevBuzzer.cpp b/src/sfTk/sfDevBuzzer.cpp index a35da7d..8722485 100644 --- a/src/sfTk/sfDevBuzzer.cpp +++ b/src/sfTk/sfDevBuzzer.cpp @@ -55,13 +55,13 @@ sfTkError_t sfDevBuzzer::isConnected() sfTkError_t sfDevBuzzer::deviceId(uint8_t &deviceId) { - return _theBus->readRegisterByte(kSfeQwiicBuzzerRegId, deviceId); + return _theBus->readRegister(kSfeQwiicBuzzerRegId, deviceId); } bool sfDevBuzzer::firmwareVersionMajor(uint8_t &versionMajor) { sfTkError_t err; - err = _theBus->readRegisterByte(kSfeQwiicBuzzerRegFirmwareMajor, versionMajor); + err = _theBus->readRegister(kSfeQwiicBuzzerRegFirmwareMajor, versionMajor); if (err == ksfTkErrOk) return true; else @@ -71,7 +71,7 @@ bool sfDevBuzzer::firmwareVersionMajor(uint8_t &versionMajor) bool sfDevBuzzer::firmwareVersionMinor(uint8_t &versionMinor) { sfTkError_t err; - err = _theBus->readRegisterByte(kSfeQwiicBuzzerRegFirmwareMinor, versionMinor); + err = _theBus->readRegister(kSfeQwiicBuzzerRegFirmwareMinor, versionMinor); if (err == ksfTkErrOk) return true; else @@ -105,22 +105,22 @@ sfTkError_t sfDevBuzzer::configureBuzzer(const uint16_t toneFrequency, const uin data[3] = durationMSB; // kSfeQwiicBuzzerRegDurationMsb data[4] = durationLSB; // kSfeQwiicBuzzerRegDurationLsb - return _theBus->writeRegisterRegion(kSfeQwiicBuzzerRegToneFrequencyMsb, data, dataLength); + return _theBus->writeRegister(kSfeQwiicBuzzerRegToneFrequencyMsb, data, dataLength); } sfTkError_t sfDevBuzzer::on() { - return _theBus->writeRegisterByte(kSfeQwiicBuzzerRegActive, 1); + return _theBus->writeRegisterUInt8(kSfeQwiicBuzzerRegActive, 1); } sfTkError_t sfDevBuzzer::off() { - return _theBus->writeRegisterByte(kSfeQwiicBuzzerRegActive, 0); + return _theBus->writeRegisterUInt8(kSfeQwiicBuzzerRegActive, 0); } sfTkError_t sfDevBuzzer::saveSettings() { - return _theBus->writeRegisterByte(kSfeQwiicBuzzerRegSaveSettings, 1); + return _theBus->writeRegisterUInt8(kSfeQwiicBuzzerRegSaveSettings, 1); } sfTkError_t sfDevBuzzer::setAddress(const uint8_t &address) @@ -130,7 +130,7 @@ sfTkError_t sfDevBuzzer::setAddress(const uint8_t &address) return ksfTkErrFail; // error immediately if the address is out of legal range } - sfTkError_t err = _theBus->writeRegisterByte(kSfeQwiicBuzzerRegI2cAddress, address); + sfTkError_t err = _theBus->writeRegister(kSfeQwiicBuzzerRegI2cAddress, address); // Check whether the write was successful if (err != ksfTkErrOk)