Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
nicksanford committed Jul 10, 2023
1 parent 4b1c2fb commit 9305149
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 7 deletions.
13 changes: 10 additions & 3 deletions internal/dim-2d/dim-2d.go → sensors/lidar/dim-2d/dim-2d.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,11 @@ func NewLidar(
return lidar, nil
}

// TODO: Move to 2d.
func GetData(ctx context.Context, lidar lidar.Lidar) (time.Time, pointcloud.PointCloud, error) {
// GetTimedData returns a 2d lidar reading, the timestamp from when it wask taken
// (eitehr in live mode or offline mode)
// and an error if an error occurred getting the lidar data or parsing the offline
// timestamp.
func GetTimedData(ctx context.Context, lidar lidar.Lidar) (time.Time, pointcloud.PointCloud, error) {
ctx, md := contextutils.ContextWithMetadata(ctx)
reqTime := time.Now().UTC()
pointcloud, err := lidar.GetData(ctx)
Expand All @@ -74,6 +77,10 @@ func GetData(ctx context.Context, lidar lidar.Lidar) (time.Time, pointcloud.Poin
return reqTime, pointcloud, nil
}

// ValidateGetData checks every sensorValidationIntervalSec if the provided lidar
// returned a valid timed lidar readings every sensorValidationIntervalSec
// until either success or sensorValidationMaxTimeoutSec has elapsed.
// returns an error if no valid lidar readings were returned.
func ValidateGetData(
ctx context.Context,
lidar lidar.Lidar,
Expand All @@ -87,7 +94,7 @@ func ValidateGetData(
startTime := time.Now().UTC()

for {
_, _, err := GetData(ctx, lidar)
_, _, err := GetTimedData(ctx, lidar)
if err == nil {
break
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import (
"github.com/pkg/errors"
"go.viam.com/test"

dim2d "github.com/viamrobotics/viam-cartographer/internal/dim-2d"
internaltesthelper "github.com/viamrobotics/viam-cartographer/internal/testhelper"
"github.com/viamrobotics/viam-cartographer/sensors/lidar"
dim2d "github.com/viamrobotics/viam-cartographer/sensors/lidar/dim-2d"
"github.com/viamrobotics/viam-cartographer/testhelper"
)

Expand Down
File renamed without changes.
File renamed without changes.
9 changes: 7 additions & 2 deletions viam-cartographer.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ import (

"github.com/viamrobotics/viam-cartographer/cartofacade"
vcConfig "github.com/viamrobotics/viam-cartographer/config"
dim2d "github.com/viamrobotics/viam-cartographer/internal/dim-2d"
"github.com/viamrobotics/viam-cartographer/sensorprocess"
"github.com/viamrobotics/viam-cartographer/sensors/lidar"
dim2d "github.com/viamrobotics/viam-cartographer/sensors/lidar/dim-2d"
vcUtils "github.com/viamrobotics/viam-cartographer/utils"
)

Expand Down Expand Up @@ -230,7 +230,12 @@ func New(
}()

if modularizationV2Enabled {
if err := dim2d.ValidateGetData(cancelCtx, cartoSvc.lidar, cartoSvc.sensorValidationMaxTimeoutSec, cartoSvc.sensorValidationIntervalSec, cartoSvc.logger); err != nil {
if err := dim2d.ValidateGetData(
cancelCtx,
cartoSvc.lidar,
cartoSvc.sensorValidationMaxTimeoutSec,
cartoSvc.sensorValidationIntervalSec,
cartoSvc.logger); err != nil {
err := errors.Wrap(err, "failed to get data from lidar")
return nil, err
}
Expand Down
2 changes: 1 addition & 1 deletion viam-cartographer_internal_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import (
"google.golang.org/grpc"
"google.golang.org/protobuf/types/known/structpb"

inject "github.com/viamrobotics/viam-cartographer/internal/inject"
inject "github.com/viamrobotics/viam-cartographer/testhelper/inject"
)

type pointCloudClientMock struct {
Expand Down

0 comments on commit 9305149

Please sign in to comment.