Swadge 2024 2.0.0
APIs to develop games for the Magfest Swadge
|
Macros | |
#define | MAC_ADDR_LEN 6 |
#define | MAC_STR_LEN ((2 * MAC_ADDR_LEN) + 1) |
#define | SWADGE_PASS_PREAMBLE 0x5350 |
#define | SWADGE_PASS_VERSION 0 |
#define | MAX_NUM_SWADGE_PASSES 100 |
Functions | |
void | fillSwadgePassPacket (swadgePassPacket_t *packet) |
Fill a SwadgePass packet with data from all modes before transmission. | |
void | sendSwadgePass (swadgePassPacket_t *packet) |
Transmit a SwadgePass packet. | |
void | initSwadgePassReceiver (void) |
Initialize the SwadgePass receiver. This reads SwadgePass data from NVS to SPIRAM so that each reception doesn't require a bunch of NVS reads. | |
void | deinitSwadgePassReceiver (void) |
Deinitialize the SwadgePass receiver. This frees memory. | |
void | receiveSwadgePass (const esp_now_recv_info_t *esp_now_info, const uint8_t *data, uint8_t len, int8_t rssi) |
Receive an ESP NOW packet and save it if it is a SwadgePass packet. | |
void | getSwadgePasses (list_t *swadgePasses, const struct swadgeMode *mode, bool getUsed) |
Fill a list with SwadgePass data. The list should be empty before calling this function. | |
void | freeSwadgePasses (list_t *swadgePasses) |
Free SwadgePass data loaded with getSwadgePasses() | |
bool | isPacketUsedByMode (swadgePassData_t *data, const struct swadgeMode *mode) |
Return if a given mode has used this SwadgePass data yet. | |
void | setPacketUsedByMode (swadgePassData_t *data, const struct swadgeMode *mode, bool isUsed) |
Set if a given mode has used this SwadgePass data yet. | |
#define MAC_ADDR_LEN 6 |
#define MAC_STR_LEN ((2 * MAC_ADDR_LEN) + 1) |
#define SWADGE_PASS_PREAMBLE 0x5350 |
#define SWADGE_PASS_VERSION 0 |
#define MAX_NUM_SWADGE_PASSES 100 |
void fillSwadgePassPacket | ( | swadgePassPacket_t * | packet | ) |
Fill a SwadgePass packet with data from all modes before transmission.
packet | The packet to fill |
|
inline |
Transmit a SwadgePass packet.
packet | The packet to transmit |
void initSwadgePassReceiver | ( | void | ) |
Initialize the SwadgePass receiver. This reads SwadgePass data from NVS to SPIRAM so that each reception doesn't require a bunch of NVS reads.
void deinitSwadgePassReceiver | ( | void | ) |
Deinitialize the SwadgePass receiver. This frees memory.
void receiveSwadgePass | ( | const esp_now_recv_info_t * | esp_now_info, |
const uint8_t * | data, | ||
uint8_t | len, | ||
int8_t | rssi ) |
Receive an ESP NOW packet and save it if it is a SwadgePass packet.
This limits the number of received SwadgePasses to MAX_NUM_SWADGE_PASSES. If a SwadgePass is received while at capacity, the most used SwadgePass will be deleted first, as determined by the most number of bits set in swadgePassNvs_t.usedModeMask.
If a SwadgePass is received from a Swadge for which there already is data, the old data will be overwritten if it's different and the swadgePassNvs_t.usedModeMask will always be cleared.
esp_now_info | Metadata for the packet, including src and dst MAC addresses |
data | The received data |
len | The length of the received data |
rssi | unused |
void getSwadgePasses | ( | list_t * | swadgePasses, |
const struct swadgeMode * | mode, | ||
bool | getUsed ) |
Fill a list with SwadgePass data. The list should be empty before calling this function.
swadgePasses | A list to fill with type swadgePassData_t |
mode | The Swadge Mode getting SwadgePass data (may be NULL) |
getUsed | true to return all SwadgePass data, false to return only unused SwadgePass data |
void freeSwadgePasses | ( | list_t * | swadgePasses | ) |
Free SwadgePass data loaded with getSwadgePasses()
swadgePasses | A list of SwadgePasses to free. The list should contain swadgePassData_t |
bool isPacketUsedByMode | ( | swadgePassData_t * | data, |
const struct swadgeMode * | mode ) |
Return if a given mode has used this SwadgePass data yet.
data | The SwadgePass data |
mode | The mode using the SwadgePass data |
void setPacketUsedByMode | ( | swadgePassData_t * | data, |
const struct swadgeMode * | mode, | ||
bool | isUsed ) |
Set if a given mode has used this SwadgePass data yet.
This will write changes to NVS.
data | The SwadgePass data |
mode | The mode using the SwadgePass data |
isUsed | true if the data should be set as used, false if it should be set as unused |