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 }} + 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) 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;