From e6837b4299a17b5f8bc0e439dad762578818d9c7 Mon Sep 17 00:00:00 2001 From: piclaw Date: Thu, 5 Feb 2026 09:31:53 -0500 Subject: [PATCH] Fix clang-format CI: add .clang-format, update workflow, format code --- .clang-format | 13 ++ .github/workflows/githubci.yml | 20 ++++ TinyLoRa.cpp | 213 ++++++++++++++++----------------- TinyLoRa.h | 30 ++--- 4 files changed, 153 insertions(+), 123 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..63a90a9 --- /dev/null +++ b/.clang-format @@ -0,0 +1,13 @@ +Language: Cpp +BasedOnStyle: Google +IndentWidth: 2 +ColumnLimit: 80 +AllowShortFunctionsOnASingleLine: Empty +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +BinPackArguments: true +BinPackParameters: true +BreakBeforeBraces: Attach +DerivePointerAlignment: false +PointerAlignment: Left +SpacesBeforeTrailingComments: 1 diff --git a/.github/workflows/githubci.yml b/.github/workflows/githubci.yml index 038d19a..a2a1de7 100644 --- a/.github/workflows/githubci.yml +++ b/.github/workflows/githubci.yml @@ -3,7 +3,27 @@ name: Arduino Library CI on: [pull_request, push, repository_dispatch] jobs: + clang-format: + runs-on: ubuntu-latest + + steps: + - uses: actions/setup-python@v4 + with: + python-version: '3.x' + - uses: actions/checkout@v3 + - uses: actions/checkout@v3 + with: + repository: adafruit/ci-arduino + path: ci + + - name: pre-install + run: bash ci/actions_install.sh + + - name: clang + run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r . + build: + needs: clang-format runs-on: ubuntu-latest steps: diff --git a/TinyLoRa.cpp b/TinyLoRa.cpp index 68cd73f..392727b 100644 --- a/TinyLoRa.cpp +++ b/TinyLoRa.cpp @@ -46,6 +46,7 @@ * */ #include "TinyLoRa.h" + #include extern uint8_t NwkSkey[16]; ///< Network Session Key @@ -197,46 +198,46 @@ const unsigned char PROGMEM TinyLoRa::S_Table[16][16] = { /**************************************************************************/ void TinyLoRa::setDatarate(rfm_datarates_t datarate) { switch (datarate) { - case SF7BW125: - _sf = 0x74; - _bw = 0x72; - _modemcfg = 0x04; - break; - case SF7BW250: - _sf = 0x74; - _bw = 0x82; - _modemcfg = 0x04; - break; - case SF8BW125: - _sf = 0x84; - _bw = 0x72; - _modemcfg = 0x04; - break; - case SF9BW125: - _sf = 0x94; - _bw = 0x72; - _modemcfg = 0x04; - break; - case SF10BW125: - _sf = 0xA4; - _bw = 0x72; - _modemcfg = 0x04; - break; - case SF11BW125: - _sf = 0xB4; - _bw = 0x72; - _modemcfg = 0x0C; - break; - case SF12BW125: - _sf = 0xC4; - _bw = 0x72; - _modemcfg = 0x0C; - break; - default: - _sf = 0x74; - _bw = 0x72; - _modemcfg = 0x04; - break; + case SF7BW125: + _sf = 0x74; + _bw = 0x72; + _modemcfg = 0x04; + break; + case SF7BW250: + _sf = 0x74; + _bw = 0x82; + _modemcfg = 0x04; + break; + case SF8BW125: + _sf = 0x84; + _bw = 0x72; + _modemcfg = 0x04; + break; + case SF9BW125: + _sf = 0x94; + _bw = 0x72; + _modemcfg = 0x04; + break; + case SF10BW125: + _sf = 0xA4; + _bw = 0x72; + _modemcfg = 0x04; + break; + case SF11BW125: + _sf = 0xB4; + _bw = 0x72; + _modemcfg = 0x0C; + break; + case SF12BW125: + _sf = 0xC4; + _bw = 0x72; + _modemcfg = 0x0C; + break; + default: + _sf = 0x74; + _bw = 0x72; + _modemcfg = 0x04; + break; } } @@ -251,60 +252,60 @@ void TinyLoRa::setChannel(rfm_channels_t channel) { _rfmLSB = 0; _rfmMID = 0; switch (channel) { - case CH0: - _rfmLSB = pgm_read_byte(&(LoRa_Frequency[0][2])); - _rfmMID = pgm_read_byte(&(LoRa_Frequency[0][1])); - _rfmMSB = pgm_read_byte(&(LoRa_Frequency[0][0])); - _isMultiChan = 0; - break; - case CH1: - _rfmLSB = pgm_read_byte(&(LoRa_Frequency[1][2])); - _rfmMID = pgm_read_byte(&(LoRa_Frequency[1][1])); - _rfmMSB = pgm_read_byte(&(LoRa_Frequency[1][0])); - _isMultiChan = 0; - break; - case CH2: - _rfmLSB = pgm_read_byte(&(LoRa_Frequency[2][2])); - _rfmMID = pgm_read_byte(&(LoRa_Frequency[2][1])); - _rfmMSB = pgm_read_byte(&(LoRa_Frequency[2][0])); - _isMultiChan = 0; - break; - case CH3: - _rfmLSB = pgm_read_byte(&(LoRa_Frequency[3][2])); - _rfmMID = pgm_read_byte(&(LoRa_Frequency[3][1])); - _rfmMSB = pgm_read_byte(&(LoRa_Frequency[3][0])); - _isMultiChan = 0; - break; - case CH4: - _rfmLSB = pgm_read_byte(&(LoRa_Frequency[4][2])); - _rfmMID = pgm_read_byte(&(LoRa_Frequency[4][1])); - _rfmMSB = pgm_read_byte(&(LoRa_Frequency[4][0])); - _isMultiChan = 0; - break; - case CH5: - _rfmLSB = pgm_read_byte(&(LoRa_Frequency[5][2])); - _rfmMID = pgm_read_byte(&(LoRa_Frequency[5][1])); - _rfmMSB = pgm_read_byte(&(LoRa_Frequency[5][0])); - _isMultiChan = 0; - break; - case CH6: - _rfmLSB = pgm_read_byte(&(LoRa_Frequency[6][2])); - _rfmMID = pgm_read_byte(&(LoRa_Frequency[6][1])); - _rfmMSB = pgm_read_byte(&(LoRa_Frequency[6][0])); - _isMultiChan = 0; - break; - case CH7: - _rfmLSB = pgm_read_byte(&(LoRa_Frequency[7][2])); - _rfmMID = pgm_read_byte(&(LoRa_Frequency[7][1])); - _rfmMSB = pgm_read_byte(&(LoRa_Frequency[7][0])); - _isMultiChan = 0; - break; - case MULTI: - _isMultiChan = 1; - break; - default: - _isMultiChan = 1; - break; + case CH0: + _rfmLSB = pgm_read_byte(&(LoRa_Frequency[0][2])); + _rfmMID = pgm_read_byte(&(LoRa_Frequency[0][1])); + _rfmMSB = pgm_read_byte(&(LoRa_Frequency[0][0])); + _isMultiChan = 0; + break; + case CH1: + _rfmLSB = pgm_read_byte(&(LoRa_Frequency[1][2])); + _rfmMID = pgm_read_byte(&(LoRa_Frequency[1][1])); + _rfmMSB = pgm_read_byte(&(LoRa_Frequency[1][0])); + _isMultiChan = 0; + break; + case CH2: + _rfmLSB = pgm_read_byte(&(LoRa_Frequency[2][2])); + _rfmMID = pgm_read_byte(&(LoRa_Frequency[2][1])); + _rfmMSB = pgm_read_byte(&(LoRa_Frequency[2][0])); + _isMultiChan = 0; + break; + case CH3: + _rfmLSB = pgm_read_byte(&(LoRa_Frequency[3][2])); + _rfmMID = pgm_read_byte(&(LoRa_Frequency[3][1])); + _rfmMSB = pgm_read_byte(&(LoRa_Frequency[3][0])); + _isMultiChan = 0; + break; + case CH4: + _rfmLSB = pgm_read_byte(&(LoRa_Frequency[4][2])); + _rfmMID = pgm_read_byte(&(LoRa_Frequency[4][1])); + _rfmMSB = pgm_read_byte(&(LoRa_Frequency[4][0])); + _isMultiChan = 0; + break; + case CH5: + _rfmLSB = pgm_read_byte(&(LoRa_Frequency[5][2])); + _rfmMID = pgm_read_byte(&(LoRa_Frequency[5][1])); + _rfmMSB = pgm_read_byte(&(LoRa_Frequency[5][0])); + _isMultiChan = 0; + break; + case CH6: + _rfmLSB = pgm_read_byte(&(LoRa_Frequency[6][2])); + _rfmMID = pgm_read_byte(&(LoRa_Frequency[6][1])); + _rfmMSB = pgm_read_byte(&(LoRa_Frequency[6][0])); + _isMultiChan = 0; + break; + case CH7: + _rfmLSB = pgm_read_byte(&(LoRa_Frequency[7][2])); + _rfmMID = pgm_read_byte(&(LoRa_Frequency[7][1])); + _rfmMSB = pgm_read_byte(&(LoRa_Frequency[7][0])); + _isMultiChan = 0; + break; + case MULTI: + _isMultiChan = 1; + break; + default: + _isMultiChan = 1; + break; } } @@ -338,7 +339,6 @@ TinyLoRa::TinyLoRa(int8_t rfm_irq, int8_t rfm_nss, int8_t rfm_rst) { */ /**************************************************************************/ bool TinyLoRa::begin() { - // start and configure SPI SPI.begin(); @@ -424,7 +424,6 @@ bool TinyLoRa::begin() { // -4.2 to 0 is in reality -84 to -80dBm void TinyLoRa::setPower(int8_t Tx_Power) { - // values to be packed in one byte bool PaBoost; int8_t OutputPower; // 0-15 @@ -480,7 +479,7 @@ void TinyLoRa::setPower(int8_t Tx_Power) { Length of the package to be sent. */ /**************************************************************************/ -void TinyLoRa::RFM_Send_Package(unsigned char *RFM_Tx_Package, +void TinyLoRa::RFM_Send_Package(unsigned char* RFM_Tx_Package, unsigned char Package_Length) { unsigned char i; @@ -572,7 +571,6 @@ void TinyLoRa::RFM_Write(unsigned char RFM_Address, unsigned char RFM_Data) { */ /**************************************************************************/ uint8_t TinyLoRa::RFM_Read(uint8_t RFM_Address) { - SPI.beginTransaction(RFM_spisettings); digitalWrite(_cs, LOW); @@ -606,9 +604,8 @@ uint8_t TinyLoRa::RFM_Read(uint8_t RFM_Address) { Frame port to send data from, from 0 to 225. */ /**************************************************************************/ -void TinyLoRa::sendData(unsigned char *Data, unsigned char Data_Length, +void TinyLoRa::sendData(unsigned char* Data, unsigned char Data_Length, unsigned int Frame_Counter_Tx, uint8_t Frame_Port) { - // Define variables unsigned char i; @@ -692,7 +689,7 @@ void TinyLoRa::sendData(unsigned char *Data, unsigned char Data_Length, Direction of message (is up). */ /**************************************************************************/ -void TinyLoRa::Encrypt_Payload(unsigned char *Data, unsigned char Data_Length, +void TinyLoRa::Encrypt_Payload(unsigned char* Data, unsigned char Data_Length, unsigned int Frame_Counter, unsigned char Direction) { unsigned char i = 0x00; @@ -769,7 +766,7 @@ void TinyLoRa::Encrypt_Payload(unsigned char *Data, unsigned char Data_Length, Direction of message (is up?). */ /**************************************************************************/ -void TinyLoRa::Calculate_MIC(unsigned char *Data, unsigned char *Final_MIC, +void TinyLoRa::Calculate_MIC(unsigned char* Data, unsigned char* Final_MIC, unsigned char Data_Length, unsigned int Frame_Counter, unsigned char Direction) { @@ -923,7 +920,7 @@ void TinyLoRa::Calculate_MIC(unsigned char *Data, unsigned char *Final_MIC, Pointer to Key2. */ /**************************************************************************/ -void TinyLoRa::Generate_Keys(unsigned char *K1, unsigned char *K2) { +void TinyLoRa::Generate_Keys(unsigned char* K1, unsigned char* K2) { unsigned char i; unsigned char MSB_Key; @@ -966,7 +963,7 @@ void TinyLoRa::Generate_Keys(unsigned char *K1, unsigned char *K2) { K2[15] = K2[15] ^ 0x87; } } -void TinyLoRa::Shift_Left(unsigned char *Data) { +void TinyLoRa::Shift_Left(unsigned char* Data) { unsigned char i; unsigned char Overflow = 0; // unsigned char High_Byte, Low_Byte; @@ -998,7 +995,7 @@ void TinyLoRa::Shift_Left(unsigned char *Data) { A pointer to the data to be xor'd. */ /**************************************************************************/ -void TinyLoRa::XOR(unsigned char *New_Data, unsigned char *Old_Data) { +void TinyLoRa::XOR(unsigned char* New_Data, unsigned char* Old_Data) { unsigned char i; for (i = 0; i < 16; i++) { @@ -1015,7 +1012,7 @@ void TinyLoRa::XOR(unsigned char *New_Data, unsigned char *Old_Data) { Pointer to AES encryption key. */ /**************************************************************************/ -void TinyLoRa::AES_Encrypt(unsigned char *Data, unsigned char *Key) { +void TinyLoRa::AES_Encrypt(unsigned char* Data, unsigned char* Key) { unsigned char Row, Column, Round = 0; unsigned char Round_Key[16]; unsigned char State[4][4]; @@ -1088,7 +1085,7 @@ void TinyLoRa::AES_Encrypt(unsigned char *Data, unsigned char *Key) { Pointer to bytes of the states-to-be-xor'd. */ /**************************************************************************/ -void TinyLoRa::AES_Add_Round_Key(unsigned char *Round_Key, +void TinyLoRa::AES_Add_Round_Key(unsigned char* Round_Key, unsigned char (*State)[4]) { unsigned char Row, Collum; @@ -1189,7 +1186,7 @@ void TinyLoRa::AES_Mix_Collums(unsigned char (*State)[4]) { */ /**************************************************************************/ void TinyLoRa::AES_Calculate_Round_Key(unsigned char Round, - unsigned char *Round_Key) { + unsigned char* Round_Key) { unsigned char i, j, b, Rcon; unsigned char Temp[4]; diff --git a/TinyLoRa.h b/TinyLoRa.h index 0403cd1..da604d2 100644 --- a/TinyLoRa.h +++ b/TinyLoRa.h @@ -74,9 +74,9 @@ typedef enum rfm_datarates { #if !defined(EU863) && !defined(AU915) && !defined(AS920) #define US902 ///< Used in USA, Canada and South America #endif -//#define EU863 ///< Used in Europe -//#define AU915 ///< Used in Australia -//#define AS920 ///< Used in Asia +// #define EU863 ///< Used in Europe +// #define AU915 ///< Used in Australia +// #define AS920 ///< Used in Asia #define RFM9x_VER 0x12 ///< Expected RFM9x RegVersion @@ -105,7 +105,7 @@ typedef enum rfm_datarates { */ /**************************************************************************/ class TinyLoRa { -public: + public: uint8_t txrandomNum; ///< random number for AES uint16_t frameCounter; ///< frame counter void setChannel(rfm_channels_t channel); @@ -113,34 +113,34 @@ class TinyLoRa { void setPower(int8_t Tx_Power = 17); TinyLoRa(int8_t rfm_dio0, int8_t rfm_nss, int8_t rfm_rst); bool begin(void); - void sendData(unsigned char *Data, unsigned char Data_Length, + void sendData(unsigned char* Data, unsigned char Data_Length, unsigned int Frame_Counter_Tx, uint8_t Frame_Port = 1); -private: + private: uint8_t randomNum; int8_t _cs, _irq, _rst; bool _isMultiChan; unsigned char _rfmMSB, _rfmMID, _rfmLSB, _sf, _bw, _modemcfg; static const unsigned char LoRa_Frequency[8][3]; static const unsigned char S_Table[16][16]; - void RFM_Send_Package(unsigned char *RFM_Tx_Package, + void RFM_Send_Package(unsigned char* RFM_Tx_Package, unsigned char Package_Length); void RFM_Write(unsigned char RFM_Address, unsigned char RFM_Data); uint8_t RFM_Read(uint8_t RFM_Address); - void Encrypt_Payload(unsigned char *Data, unsigned char Data_Length, + void Encrypt_Payload(unsigned char* Data, unsigned char Data_Length, unsigned int Frame_Counter, unsigned char Direction); - void Calculate_MIC(unsigned char *Data, unsigned char *Final_MIC, + void Calculate_MIC(unsigned char* Data, unsigned char* Final_MIC, unsigned char Data_Length, unsigned int Frame_Counter, unsigned char Direction); - void Generate_Keys(unsigned char *K1, unsigned char *K2); - void Shift_Left(unsigned char *Data); - void XOR(unsigned char *New_Data, unsigned char *Old_Data); - void AES_Encrypt(unsigned char *Data, unsigned char *Key); - void AES_Add_Round_Key(unsigned char *Round_Key, unsigned char (*State)[4]); + void Generate_Keys(unsigned char* K1, unsigned char* K2); + void Shift_Left(unsigned char* Data); + void XOR(unsigned char* New_Data, unsigned char* Old_Data); + void AES_Encrypt(unsigned char* Data, unsigned char* Key); + void AES_Add_Round_Key(unsigned char* Round_Key, unsigned char (*State)[4]); unsigned char AES_Sub_Byte(unsigned char Byte); void AES_Shift_Rows(unsigned char (*State)[4]); void AES_Mix_Collums(unsigned char (*State)[4]); - void AES_Calculate_Round_Key(unsigned char Round, unsigned char *Round_Key); + void AES_Calculate_Round_Key(unsigned char Round, unsigned char* Round_Key); }; #endif