43 lines
1.1 KiB
C
43 lines
1.1 KiB
C
#ifndef SIGNAL_ANALYSIS_H
|
|
#define SIGNAL_ANALYSIS_H
|
|
|
|
#include <stdint.h>
|
|
|
|
// Signal analysis data structure
|
|
typedef struct {
|
|
uint8_t channel;
|
|
int8_t rssi;
|
|
uint32_t packet_count;
|
|
uint32_t timestamp;
|
|
} channel_data_t;
|
|
|
|
/**
|
|
* @brief Get channel utilization data
|
|
*
|
|
* @param data Output array for channel data
|
|
* @param max_channels Maximum number of channels
|
|
* @return Number of channels with data
|
|
*/
|
|
int signal_get_channel_utilization(channel_data_t *data, int max_channels);
|
|
|
|
/**
|
|
* @brief Get signal strength over time for a specific network
|
|
*
|
|
* @param bssid Target BSSID (6 bytes)
|
|
* @param rssi_history Output array for RSSI values
|
|
* @param timestamps Output array for timestamps
|
|
* @param max_samples Maximum number of samples
|
|
* @return Number of samples
|
|
*/
|
|
int signal_get_rssi_history(uint8_t *bssid, int8_t *rssi_history, uint32_t *timestamps, int max_samples);
|
|
|
|
/**
|
|
* @brief Update signal analysis with new packet data
|
|
*
|
|
* @param channel Channel number
|
|
* @param rssi RSSI value
|
|
*/
|
|
void signal_update_packet(uint8_t channel, int8_t rssi);
|
|
|
|
#endif /* SIGNAL_ANALYSIS_H */
|