Skip to content

Commit 1396bf8

Browse files
committed
Merge pull request arduino#302 from tekka007/SigningBitfield
Thanks for finding this.
2 parents 0ecf632 + cc91acb commit 1396bf8

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

libraries/MySensors/core/MySigning.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
#include "MySigning.h"
2121

2222

23-
uint16_t _doSign[16]; // Bitfield indicating which sensors require signed communication
23+
uint8_t _doSign[32]; // Bitfield indicating which sensors require signed communication
2424
MyMessage _msgSign; // Buffer for message to sign.
2525

libraries/MySensors/core/MySigning.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -485,12 +485,12 @@ typedef struct {
485485
#endif
486486

487487
// Macros for manipulating signing requirement table
488-
/** @brief Return 'true' if provided node ID is requiering signed messages */
489-
#define DO_SIGN(node) (node == 0 ? (~_doSign[0]&1) : (~_doSign[node>>4]&(node%16)))
488+
/** @brief Return 'true' if provided node ID is requiring signed messages */
489+
#define DO_SIGN(node) (~_doSign[node>>3]&(1<<(node%8)))
490490
/** @brief Mark provided node ID to require signed messages in table */
491-
#define SET_SIGN(node) (node == 0 ? (_doSign[0]&=~1) : (_doSign[node>>4]&=~(node%16)))
491+
#define SET_SIGN(node) (_doSign[node>>3]&=~(1<<(node%8)))
492492
/** @brief Mark provided node ID to not require signed messages in table */
493-
#define CLEAR_SIGN(node) (node == 0 ? (_doSign[0]|=1) : (_doSign[node>>4]|=(node%16)))
493+
#define CLEAR_SIGN(node) (_doSign[node>>3]|=(1<<(node%8)))
494494
/** @brief Helper macro to determine the number of elements in a array */
495495
#define NUM_OF(x) (sizeof(x)/sizeof(x[0]))
496496

0 commit comments

Comments
 (0)