fix: prevent connection disruption with ping interval
This commit is contained in:
parent
679a0ccebd
commit
887449b4cb
Binary file not shown.
|
@ -59,6 +59,7 @@ func Connect(host string, port int) error {
|
|||
client = reachview.NewClient(
|
||||
emlid.WithEndpoint(host, port),
|
||||
emlid.WithStandardLogger(),
|
||||
emlid.WithPingInterval(5*time.Second),
|
||||
)
|
||||
|
||||
return client.Connect()
|
||||
|
@ -103,46 +104,55 @@ func StartBroadcast() (int, error) {
|
|||
|
||||
go func() {
|
||||
for b := range broadcasts {
|
||||
lastBroadcastMutex.Lock()
|
||||
switch b.Name {
|
||||
case reachview.BroadcastRoverStatus:
|
||||
newLastRoverBroadcast := NewFlattenedRoverBroadcast()
|
||||
if err := newLastRoverBroadcast.From(b); err != nil {
|
||||
panic(errors.WithStack(err))
|
||||
}
|
||||
|
||||
lastRoverBroadcast = newLastRoverBroadcast
|
||||
case reachview.BroadcastBaseStatus:
|
||||
newLastBaseBroadcast := NewFlattenedBaseBroadcast()
|
||||
if err := newLastBaseBroadcast.From(b); err != nil {
|
||||
panic(errors.WithStack(err))
|
||||
}
|
||||
|
||||
lastBaseBroadcast = newLastBaseBroadcast
|
||||
|
||||
case reachview.BroadcastRTKStatus:
|
||||
newLastRTKBroadcast := NewFlattenedRTKBroadcast()
|
||||
if err := newLastRTKBroadcast.From(b); err != nil {
|
||||
panic(errors.WithStack(err))
|
||||
}
|
||||
|
||||
lastRTKBroadcast = newLastRTKBroadcast
|
||||
|
||||
case reachview.BroadcastBatteryStatus:
|
||||
newLastBatteryBroadcast := NewBatteryBroadcast()
|
||||
if err := newLastBatteryBroadcast.From(b); err != nil {
|
||||
panic(errors.WithStack(err))
|
||||
}
|
||||
|
||||
lastBatteryBroadcast = newLastBatteryBroadcast
|
||||
if err := handleBroadcast(b); err != nil {
|
||||
panic(errors.WithStack(err))
|
||||
}
|
||||
lastBroadcastMutex.Unlock()
|
||||
}
|
||||
}()
|
||||
|
||||
return broadcastID, nil
|
||||
}
|
||||
|
||||
func handleBroadcast(b reachview.Broadcast) error {
|
||||
lastBroadcastMutex.Lock()
|
||||
defer lastBroadcastMutex.Unlock()
|
||||
|
||||
switch b.Name {
|
||||
case reachview.BroadcastRoverStatus:
|
||||
newLastRoverBroadcast := NewFlattenedRoverBroadcast()
|
||||
if err := newLastRoverBroadcast.From(b); err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
lastRoverBroadcast = newLastRoverBroadcast
|
||||
case reachview.BroadcastBaseStatus:
|
||||
newLastBaseBroadcast := NewFlattenedBaseBroadcast()
|
||||
if err := newLastBaseBroadcast.From(b); err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
lastBaseBroadcast = newLastBaseBroadcast
|
||||
|
||||
case reachview.BroadcastRTKStatus:
|
||||
newLastRTKBroadcast := NewFlattenedRTKBroadcast()
|
||||
if err := newLastRTKBroadcast.From(b); err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
lastRTKBroadcast = newLastRTKBroadcast
|
||||
|
||||
case reachview.BroadcastBatteryStatus:
|
||||
newLastBatteryBroadcast := NewBatteryBroadcast()
|
||||
if err := newLastBatteryBroadcast.From(b); err != nil {
|
||||
return errors.WithStack(err)
|
||||
}
|
||||
|
||||
lastBatteryBroadcast = newLastBatteryBroadcast
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// StopBroadcast remove listener for Broadcast messages
|
||||
func StopBroadcast() {
|
||||
broadcastMutex.Lock()
|
||||
|
|
|
@ -91,7 +91,7 @@ function* reachviewBroadcastSaga() {
|
|||
}
|
||||
|
||||
yield put({ type: REACHVIEW_BROADCAST_REQUEST });
|
||||
yield call(Reachview.startBroadcast, 2000);
|
||||
yield call(Reachview.startBroadcast, 3000);
|
||||
yield put({ type: REACHVIEW_BROADCAST_SUCCESS });
|
||||
} catch(err) {
|
||||
Sentry.captureException(err);
|
||||
|
|
Loading…
Reference in New Issue