Documentation
¶
Index ¶
- func EnsureValidBabyUID(babyUID string)
- type Baby
- type State
- func (state *State) AsMap(includeInternal bool) map[string]interface{}
- func (state *State) EnhanceLogEvent(e *zerolog.Event) *zerolog.Event
- func (state *State) GetHumidity() float64
- func (state *State) GetIsWebsocketAlive() bool
- func (state *State) GetStreamRequestState() StreamRequestState
- func (state *State) GetStreamState() StreamState
- func (state *State) GetTemperature() float64
- func (state *State) Merge(stateUpdate *State) *State
- func (state *State) SetHumidityMilli(value int32) *State
- func (state *State) SetIsNight(value bool) *State
- func (state *State) SetMotionTimestamp(value int32) *State
- func (state *State) SetSoundTimestamp(value int32) *State
- func (state *State) SetStreamRequestState(value StreamRequestState) *State
- func (state *State) SetStreamState(value StreamState) *State
- func (state *State) SetTemperature(value bool) *State
- func (state *State) SetTemperatureMilli(value int32) *State
- func (state *State) SetWebsocketAlive(value bool) *State
- type StateManager
- func (manager *StateManager) GetBabyState(babyUID string) *State
- func (manager *StateManager) NotifyMotionSubscribers(babyUID string, time time.Time)
- func (manager *StateManager) NotifySoundSubscribers(babyUID string, time time.Time)
- func (manager *StateManager) Subscribe(callback func(babyUID string, state State)) func()
- func (manager *StateManager) Update(babyUID string, stateUpdate State)
- type StreamRequestState
- type StreamState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EnsureValidBabyUID ¶
func EnsureValidBabyUID(babyUID string)
EnsureValidBabyUID - Checks that Baby UID does not contain any bad characters This is necessary because we use it as part of file paths
Types ¶
type Baby ¶
type Baby struct {
UID string `json:"uid"`
Name string `json:"name"`
CameraUID string `json:"camera_uid"`
}
Baby - baby info (matching the Nanit API)
type State ¶
type State struct {
StreamState *StreamState `internal:"true"`
StreamRequestState *StreamRequestState `internal:"true"`
IsWebsocketAlive *bool `internal:"true"`
MotionTimestamp *int32 // int32 is used to represent UTC timestamp
SoundTimestamp *int32 // int32 is used to represent UTC timestamp
Temperature *bool
IsNight *bool
TemperatureMilli *int32
HumidityMilli *int32
}
State - struct holding information about state of a single baby
func (*State) EnhanceLogEvent ¶
EnhanceLogEvent - appends non-nil properties to a log event
func (*State) GetHumidity ¶
GetHumidity - returns humidity as floating point
func (*State) GetIsWebsocketAlive ¶
GetIsWebsocketAlive - safely returns value
func (*State) GetStreamRequestState ¶
func (state *State) GetStreamRequestState() StreamRequestState
GetStreamRequestState - safely returns value
func (*State) GetStreamState ¶
func (state *State) GetStreamState() StreamState
GetStreamState - safely returns value
func (*State) GetTemperature ¶
GetTemperature - returns temperature as floating point
func (*State) Merge ¶
Merge - Merges non-nil values of an argument to the state. Returns ptr to new state if changes Returns ptr to old state if not changed
func (*State) SetHumidityMilli ¶
SetHumidityMilli - mutates field, returns itself
func (*State) SetIsNight ¶
SetIsNight - mutates field, returns itself
func (*State) SetMotionTimestamp ¶
func (*State) SetSoundTimestamp ¶
func (*State) SetStreamRequestState ¶
func (state *State) SetStreamRequestState(value StreamRequestState) *State
SetStreamRequestState - mutates field, returns itself
func (*State) SetStreamState ¶
func (state *State) SetStreamState(value StreamState) *State
SetStreamState - mutates field, returns itself
func (*State) SetTemperature ¶
func (*State) SetTemperatureMilli ¶
SetTemperatureMilli - mutates field, returns itself
func (*State) SetWebsocketAlive ¶
SetWebsocketAlive - mutates field, returns itself
type StateManager ¶
type StateManager struct {
// contains filtered or unexported fields
}
StateManager - state manager context
func NewStateManager ¶
func NewStateManager() *StateManager
NewStateManager - state manager constructor
func (*StateManager) GetBabyState ¶
func (manager *StateManager) GetBabyState(babyUID string) *State
GetBabyState - returns current state of a baby
func (*StateManager) NotifyMotionSubscribers ¶
func (manager *StateManager) NotifyMotionSubscribers(babyUID string, time time.Time)
func (*StateManager) NotifySoundSubscribers ¶
func (manager *StateManager) NotifySoundSubscribers(babyUID string, time time.Time)
func (*StateManager) Subscribe ¶
func (manager *StateManager) Subscribe(callback func(babyUID string, state State)) func()
Subscribe - registers function to be called on every update Returns unsubscribe function
func (*StateManager) Update ¶
func (manager *StateManager) Update(babyUID string, stateUpdate State)
Update - updates baby info in thread safe manner
type StreamRequestState ¶
type StreamRequestState int32
const ( StreamRequestState_NotRequested StreamRequestState = iota StreamRequestState_Requested StreamRequestState_RequestFailed )
type StreamState ¶
type StreamState int32
const ( StreamState_Unknown StreamState = iota StreamState_Unhealthy StreamState_Alive )