Add websocket wifi updates
This commit is contained in:
parent
c443fce24f
commit
1477d909b0
11 changed files with 755 additions and 10 deletions
70
internal/wifi/events.go
Normal file
70
internal/wifi/events.go
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
package wifi
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/nemunaire/repeater/internal/models"
|
||||
)
|
||||
|
||||
// WifiEvent represents a WiFi event to be sent over WebSocket
|
||||
type WifiEvent struct {
|
||||
Type string `json:"type"`
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
Data interface{} `json:"data"`
|
||||
}
|
||||
|
||||
// ScanUpdateData contains network list update information
|
||||
type ScanUpdateData struct {
|
||||
Networks []models.WiFiNetwork `json:"networks"`
|
||||
}
|
||||
|
||||
// StateChangeData contains connection state change information
|
||||
type StateChangeData struct {
|
||||
State string `json:"state"`
|
||||
SSID string `json:"ssid,omitempty"`
|
||||
PreviousState string `json:"previous_state,omitempty"`
|
||||
}
|
||||
|
||||
// SignalUpdateData contains signal strength update information
|
||||
type SignalUpdateData struct {
|
||||
SSID string `json:"ssid"`
|
||||
Signal int `json:"signal"` // 1-5 scale
|
||||
DBm int `json:"dbm"` // Raw dBm value
|
||||
}
|
||||
|
||||
// NewScanUpdateEvent creates a new scan update event
|
||||
func NewScanUpdateEvent(networks []models.WiFiNetwork) WifiEvent {
|
||||
return WifiEvent{
|
||||
Type: "scan_update",
|
||||
Timestamp: time.Now(),
|
||||
Data: ScanUpdateData{
|
||||
Networks: networks,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// NewStateChangeEvent creates a new state change event
|
||||
func NewStateChangeEvent(state, ssid, previousState string) WifiEvent {
|
||||
return WifiEvent{
|
||||
Type: "state_change",
|
||||
Timestamp: time.Now(),
|
||||
Data: StateChangeData{
|
||||
State: state,
|
||||
SSID: ssid,
|
||||
PreviousState: previousState,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// NewSignalUpdateEvent creates a new signal update event
|
||||
func NewSignalUpdateEvent(ssid string, signal, dbm int) WifiEvent {
|
||||
return WifiEvent{
|
||||
Type: "signal_update",
|
||||
Timestamp: time.Now(),
|
||||
Data: SignalUpdateData{
|
||||
SSID: ssid,
|
||||
Signal: signal,
|
||||
DBm: dbm,
|
||||
},
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue