Implement motion service

This commit is contained in:
2021-10-22 13:21:14 -07:00
parent e7de7bd7bb
commit 1492db7566
4 changed files with 59 additions and 7 deletions

View File

@@ -117,6 +117,17 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
})
}
}()
case types.ReqTypeBattLevel:
// Get battery level from watch
battLevel, err := dev.BatteryLevel()
if err != nil {
connErr(conn, err, "Error getting battery level")
break
}
// Encode battery level to connection
json.NewEncoder(conn).Encode(types.Response{
Value: battLevel,
})
case types.ReqTypeWatchBattLevel:
battLevelCh, err := dev.WatchBatteryLevel()
if err != nil {
@@ -130,17 +141,54 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
})
}
}()
case types.ReqTypeBattLevel:
case types.ReqTypeMotion:
// Get battery level from watch
battLevel, err := dev.BatteryLevel()
motionVals, err := dev.Motion()
if err != nil {
connErr(conn, err, "Error getting battery level")
connErr(conn, err, "Error getting motion values")
break
}
// Encode battery level to connection
json.NewEncoder(conn).Encode(types.Response{
Value: battLevel,
Value: motionVals,
})
case types.ReqTypeWatchMotion:
motionValCh, _, err := dev.WatchMotion()
if err != nil {
connErr(conn, err, "Error getting heart rate channel")
break
}
go func() {
for motionVals := range motionValCh {
json.NewEncoder(conn).Encode(types.Response{
Value: motionVals,
})
}
}()
case types.ReqTypeStepCount:
// Get battery level from watch
stepCount, err := dev.StepCount()
if err != nil {
connErr(conn, err, "Error getting step count")
break
}
// Encode battery level to connection
json.NewEncoder(conn).Encode(types.Response{
Value: stepCount,
})
case types.ReqTypeWatchStepCount:
stepCountCh, _, err := dev.WatchStepCount()
if err != nil {
connErr(conn, err, "Error getting heart rate channel")
break
}
go func() {
for stepCount := range stepCountCh {
json.NewEncoder(conn).Encode(types.Response{
Value: stepCount,
})
}
}()
case types.ReqTypeFwVersion:
// Get firmware version from watch
version, err := dev.Version()