add: sensors

This commit is contained in:
Charles Hathaway
2023-10-01 22:02:30 -07:00
parent a07a993bab
commit ac4e32697c
13 changed files with 1247 additions and 191 deletions
+31
View File
@@ -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")