add: sensors
This commit is contained in:
@@ -14,6 +14,7 @@ import (
|
||||
"connectrpc.com/connect"
|
||||
pb "github.com/chathaway-codes/home-sensors/v2/gen"
|
||||
servicepb "github.com/chathaway-codes/home-sensors/v2/gen/genconnect"
|
||||
"github.com/chathaway-codes/home-sensors/v2/internal/sensors"
|
||||
"github.com/chathaway-codes/home-sensors/v2/internal/video"
|
||||
"github.com/pion/webrtc/v3"
|
||||
"github.com/pion/webrtc/v3/pkg/media"
|
||||
@@ -37,6 +38,11 @@ func main() {
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("failed to get default video")
|
||||
}
|
||||
|
||||
sensors, err := sensors.Default.Get()
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("failed to get default sensor")
|
||||
}
|
||||
client := servicepb.NewSignalerServiceClient(http.DefaultClient, "http://192.168.0.65:8080/")
|
||||
authToken, err := client.CreateAuthToken(ctx, connect.NewRequest(&pb.CreateAuthTokenRequest{
|
||||
Home: "home1234",
|
||||
@@ -54,6 +60,14 @@ func main() {
|
||||
go vid.Run()
|
||||
defer vid.Done()
|
||||
|
||||
go sensors.Run()
|
||||
defer sensors.Done()
|
||||
|
||||
sensorCh, sensorDone := sensors.Join()
|
||||
defer sensorDone()
|
||||
|
||||
go handleSensor(ctx, client, token, sensorCh)
|
||||
|
||||
// Create a new RTCPeerConnection
|
||||
log.Info().Msg("waiting for connections")
|
||||
|
||||
@@ -67,6 +81,23 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func handleSensor(ctx context.Context, client servicepb.SignalerServiceClient, token string, ch <-chan *pb.Sample) {
|
||||
for {
|
||||
var sample *pb.Sample
|
||||
select {
|
||||
case sample = <-ch:
|
||||
// proceed
|
||||
case <-ctx.Done():
|
||||
return
|
||||
}
|
||||
if _, err := client.CreateSample(ctx, withAuth(token, &pb.CreateSampleRequest{
|
||||
Sample: sample,
|
||||
})); err != nil {
|
||||
log.Error().Err(err).Msg("failed to create sample")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func handleSession(ctx context.Context, client servicepb.SignalerServiceClient, token string, session *connect.Response[pb.Session], vid *video.Video) {
|
||||
var err error
|
||||
log.Debug().Msg("new session")
|
||||
|
||||
Reference in New Issue
Block a user