Swadge 2024 2.0.0
APIs to develop games for the Magfest Swadge
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
swadgePass.h
Go to the documentation of this file.
1
103
104#pragma once
105
106//==============================================================================
107// Includes
108//==============================================================================
109
110#include "swadge2024.h"
111
112//==============================================================================
113// Structs
114//==============================================================================
115
119typedef struct __attribute__((packed)) swadgePassPacket
120{
121 uint16_t preamble;
122 uint8_t version;
123 int32_t username;
124 struct
125 {
126 int8_t reactHs;
127 int8_t memHs;
128 } swadgeIt;
129 struct
130 {
131 uint16_t highScore;
132 } roboRunner;
134
143
152
153//==============================================================================
154// Forward declaration
155//==============================================================================
156
157struct swadgeMode;
158
159//==============================================================================
160// Function Declarations
161//==============================================================================
162
163void initSwadgePassReceiver(void);
164void deinitSwadgePassReceiver(void);
165
168void receiveSwadgePass(const esp_now_recv_info_t* esp_now_info, const uint8_t* data, uint8_t len, int8_t rssi);
169
170void getSwadgePasses(list_t* swadgePasses, const struct swadgeMode* mode, bool getUsed);
171void freeSwadgePasses(list_t* swadgePasses);
172
173bool isPacketUsedByMode(swadgePassData_t* data, const struct swadgeMode* mode);
174void setPacketUsedByMode(swadgePassData_t* data, const struct swadgeMode* mode, bool isUsed);
#define NVS_KEY_NAME_MAX_SIZE
Definition hdw-nvs.h:59
A doubly linked list with pointers to the first and last nodes.
Definition linked_list.h:87
Definition swadge2024.h:244
struct swadgePassPacket swadgePassPacket_t
A SwadgePass packet which is transmitted over ESP NOW.
void sendSwadgePass(swadgePassPacket_t *packet)
Transmit a SwadgePass packet.
Definition swadgePass.c:71
char key[NVS_KEY_NAME_MAX_SIZE]
A string representation of the other Swadge's MAC address.
Definition swadgePass.h:149
uint16_t preamble
Two bytes that specifically begin a SwadgePass packet.
Definition swadgePass.h:121
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.
Definition swadgePass.c:129
void deinitSwadgePassReceiver(void)
Deinitialize the SwadgePass receiver. This frees memory.
Definition swadgePass.c:105
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.
Definition swadgePass.c:246
void freeSwadgePasses(list_t *swadgePasses)
Free SwadgePass data loaded with getSwadgePasses()
Definition swadgePass.c:299
void fillSwadgePassPacket(swadgePassPacket_t *packet)
Fill a SwadgePass packet with data from all modes before transmission.
Definition swadgePass.c:45
int32_t username
The username of the swadge owner.
Definition swadgePass.h:123
swadgePassNvs_t data
The SwadgePass data stored in this Swadge's NVS.
Definition swadgePass.h:150
swadgePassPacket_t packet
The received SwadgePass packet.
Definition swadgePass.h:141
void initSwadgePassReceiver(void)
Initialize the SwadgePass receiver. This reads SwadgePass data from NVS to SPIRAM so that each recept...
Definition swadgePass.c:93
uint8_t version
A version byte to differentiate packets per-year.
Definition swadgePass.h:122
bool isPacketUsedByMode(swadgePassData_t *data, const struct swadgeMode *mode)
Return if a given mode has used this SwadgePass data yet.
Definition swadgePass.c:314
uint32_t usedModeMask
A bitmask indicating if a mode has used this data.
Definition swadgePass.h:140
void setPacketUsedByMode(swadgePassData_t *data, const struct swadgeMode *mode, bool isUsed)
Set if a given mode has used this SwadgePass data yet.
Definition swadgePass.c:329
SwadgePass data that is received from another Swadge.
Definition swadgePass.h:148
SwadgePass data that is saved to NVS.
Definition swadgePass.h:139
A SwadgePass packet which is transmitted over ESP NOW.
Definition swadgePass.h:120