Return request type for response type
This commit is contained in:
parent
4b6b2a4581
commit
8d29ece214
@ -17,23 +17,6 @@ const (
|
|||||||
ReqTypeCancel
|
ReqTypeCancel
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
ResTypeHeartRate = iota
|
|
||||||
ResTypeBattLevel
|
|
||||||
ResTypeFwVersion
|
|
||||||
ResTypeDFUProgress
|
|
||||||
ResTypeBtAddress
|
|
||||||
ResTypeNotify
|
|
||||||
ResTypeSetTime
|
|
||||||
ResTypeWatchHeartRate
|
|
||||||
ResTypeWatchBattLevel
|
|
||||||
ResTypeMotion
|
|
||||||
ResTypeWatchMotion
|
|
||||||
ResTypeStepCount
|
|
||||||
ResTypeWatchStepCount
|
|
||||||
ResTypeCancel
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
UpgradeTypeArchive = iota
|
UpgradeTypeArchive = iota
|
||||||
UpgradeTypeFiles
|
UpgradeTypeFiles
|
||||||
|
31
socket.go
31
socket.go
@ -22,6 +22,7 @@ import (
|
|||||||
"bufio"
|
"bufio"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math"
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -126,7 +127,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
}
|
}
|
||||||
// Encode heart rate to connection
|
// Encode heart rate to connection
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeHeartRate,
|
Type: req.Type,
|
||||||
Value: heartRate,
|
Value: heartRate,
|
||||||
})
|
})
|
||||||
case types.ReqTypeWatchHeartRate:
|
case types.ReqTypeWatchHeartRate:
|
||||||
@ -149,7 +150,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
default:
|
default:
|
||||||
// Encode response to connection if no done signal received
|
// Encode response to connection if no done signal received
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeWatchHeartRate,
|
Type: req.Type,
|
||||||
ID: reqID,
|
ID: reqID,
|
||||||
Value: heartRate,
|
Value: heartRate,
|
||||||
})
|
})
|
||||||
@ -165,7 +166,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
}
|
}
|
||||||
// Encode battery level to connection
|
// Encode battery level to connection
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeBattLevel,
|
Type: req.Type,
|
||||||
Value: battLevel,
|
Value: battLevel,
|
||||||
})
|
})
|
||||||
case types.ReqTypeWatchBattLevel:
|
case types.ReqTypeWatchBattLevel:
|
||||||
@ -188,7 +189,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
default:
|
default:
|
||||||
// Encode response to connection if no done signal received
|
// Encode response to connection if no done signal received
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeWatchBattLevel,
|
Type: req.Type,
|
||||||
ID: reqID,
|
ID: reqID,
|
||||||
Value: battLevel,
|
Value: battLevel,
|
||||||
})
|
})
|
||||||
@ -204,7 +205,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
}
|
}
|
||||||
// Encode battery level to connection
|
// Encode battery level to connection
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeMotion,
|
Type: req.Type,
|
||||||
Value: motionVals,
|
Value: motionVals,
|
||||||
})
|
})
|
||||||
case types.ReqTypeWatchMotion:
|
case types.ReqTypeWatchMotion:
|
||||||
@ -228,7 +229,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
default:
|
default:
|
||||||
// Encode response to connection if no done signal received
|
// Encode response to connection if no done signal received
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeWatchMotion,
|
Type: req.Type,
|
||||||
ID: reqID,
|
ID: reqID,
|
||||||
Value: motionVals,
|
Value: motionVals,
|
||||||
})
|
})
|
||||||
@ -244,7 +245,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
}
|
}
|
||||||
// Encode battery level to connection
|
// Encode battery level to connection
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeStepCount,
|
Type: req.Type,
|
||||||
Value: stepCount,
|
Value: stepCount,
|
||||||
})
|
})
|
||||||
case types.ReqTypeWatchStepCount:
|
case types.ReqTypeWatchStepCount:
|
||||||
@ -267,7 +268,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
default:
|
default:
|
||||||
// Encode response to connection if no done signal received
|
// Encode response to connection if no done signal received
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeWatchStepCount,
|
Type: req.Type,
|
||||||
ID: reqID,
|
ID: reqID,
|
||||||
Value: stepCount,
|
Value: stepCount,
|
||||||
})
|
})
|
||||||
@ -283,13 +284,13 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
}
|
}
|
||||||
// Encode version to connection
|
// Encode version to connection
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeFwVersion,
|
Type: req.Type,
|
||||||
Value: version,
|
Value: version,
|
||||||
})
|
})
|
||||||
case types.ReqTypeBtAddress:
|
case types.ReqTypeBtAddress:
|
||||||
// Encode bluetooth address to connection
|
// Encode bluetooth address to connection
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeBtAddress,
|
Type: req.Type,
|
||||||
Value: dev.Address(),
|
Value: dev.Address(),
|
||||||
})
|
})
|
||||||
case types.ReqTypeNotify:
|
case types.ReqTypeNotify:
|
||||||
@ -316,7 +317,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
// Encode empty types.Response to connection
|
// Encode empty types.Response to connection
|
||||||
json.NewEncoder(conn).Encode(types.Response{Type: types.ResTypeNotify})
|
json.NewEncoder(conn).Encode(types.Response{Type: req.Type})
|
||||||
case types.ReqTypeSetTime:
|
case types.ReqTypeSetTime:
|
||||||
// If no data, return error
|
// If no data, return error
|
||||||
if req.Data == nil {
|
if req.Data == nil {
|
||||||
@ -348,7 +349,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
// Encode empty types.Response to connection
|
// Encode empty types.Response to connection
|
||||||
json.NewEncoder(conn).Encode(types.Response{Type: types.ResTypeSetTime})
|
json.NewEncoder(conn).Encode(types.Response{Type: req.Type})
|
||||||
case types.ReqTypeFwUpgrade:
|
case types.ReqTypeFwUpgrade:
|
||||||
// If no data, return error
|
// If no data, return error
|
||||||
if req.Data == nil {
|
if req.Data == nil {
|
||||||
@ -413,7 +414,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
for event := range progress {
|
for event := range progress {
|
||||||
// Encode event on connection
|
// Encode event on connection
|
||||||
json.NewEncoder(conn).Encode(types.Response{
|
json.NewEncoder(conn).Encode(types.Response{
|
||||||
Type: types.ResTypeDFUProgress,
|
Type: req.Type,
|
||||||
Value: event,
|
Value: event,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -441,7 +442,7 @@ func handleConnection(conn net.Conn, dev *infinitime.Device) {
|
|||||||
}
|
}
|
||||||
// Stop notifications
|
// Stop notifications
|
||||||
done.Done(reqID)
|
done.Done(reqID)
|
||||||
json.NewEncoder(conn).Encode(types.Response{Type: types.ResTypeCancel})
|
json.NewEncoder(conn).Encode(types.Response{Type: req.Type})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -454,7 +455,7 @@ func connErr(conn net.Conn, err error, msg string) {
|
|||||||
res = types.Response{Message: fmt.Sprintf("%s: %s", msg, err)}
|
res = types.Response{Message: fmt.Sprintf("%s: %s", msg, err)}
|
||||||
} else {
|
} else {
|
||||||
log.Error().Msg(msg)
|
log.Error().Msg(msg)
|
||||||
res = types.Response{Message: msg}
|
res = types.Response{Message: msg, Type: math.MaxInt}
|
||||||
}
|
}
|
||||||
res.Error = true
|
res.Error = true
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user