#pragma once #include #include "config.h" #include "host/ble_hs.h" typedef struct __attribute__((packed)) { uint8_t magic[2]; uint8_t game_id[2]; char name[PLAYER_NAME_LEN]; int16_t life; uint8_t poison; uint8_t eliminated; uint8_t player_id; uint8_t reset_cmd; uint8_t cmdr_dmg[MAX_OPPONENTS]; } ble_payload_t; typedef struct { ble_addr_t addr; char name[PLAYER_NAME_LEN + 1]; int16_t life; uint8_t poison; uint8_t eliminated; uint8_t player_id; uint8_t reset_cmd; uint8_t cmdr_dmg[MAX_OPPONENTS]; uint32_t last_seen; int active; } ble_peer_t; extern volatile int g_ble_scanning; extern volatile int g_ble_initialized; extern uint8_t g_own_addr_type; extern uint8_t g_own_addr[6]; extern uint8_t g_player_id; extern volatile int g_reset_requested; extern int g_reset_cmd_ticks; void ble_init(void); void ble_adv_update(void); void player_id_resolve(void);