forked from Elara6331/itd
Switch from custom socket API to rpcx
This commit is contained in:
@@ -1,150 +0,0 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
const (
|
||||
ReqTypeHeartRate = iota
|
||||
ReqTypeBattLevel
|
||||
ReqTypeFwVersion
|
||||
ReqTypeFwUpgrade
|
||||
ReqTypeBtAddress
|
||||
ReqTypeNotify
|
||||
ReqTypeSetTime
|
||||
ReqTypeWatchHeartRate
|
||||
ReqTypeWatchBattLevel
|
||||
ReqTypeMotion
|
||||
ReqTypeWatchMotion
|
||||
ReqTypeStepCount
|
||||
ReqTypeWatchStepCount
|
||||
ReqTypeCancel
|
||||
ReqTypeFS
|
||||
ReqTypeWeatherUpdate
|
||||
)
|
||||
|
||||
const (
|
||||
UpgradeTypeArchive = iota
|
||||
UpgradeTypeFiles
|
||||
)
|
||||
|
||||
const (
|
||||
FSTypeWrite = iota
|
||||
FSTypeRead
|
||||
FSTypeMove
|
||||
FSTypeDelete
|
||||
FSTypeList
|
||||
FSTypeMkdir
|
||||
)
|
||||
|
||||
type ReqDataFS struct {
|
||||
Type int `json:"type"`
|
||||
Files []string `json:"files"`
|
||||
Data string `json:"data,omitempty"`
|
||||
}
|
||||
|
||||
type ReqDataFwUpgrade struct {
|
||||
Type int
|
||||
Files []string
|
||||
}
|
||||
|
||||
type Response struct {
|
||||
Type int `json:"type"`
|
||||
Value interface{} `json:"value,omitempty"`
|
||||
Message string `json:"msg,omitempty"`
|
||||
ID string `json:"id,omitempty"`
|
||||
Error bool `json:"error"`
|
||||
}
|
||||
|
||||
type Request struct {
|
||||
Type int `json:"type"`
|
||||
Data interface{} `json:"data,omitempty"`
|
||||
}
|
||||
|
||||
type ReqDataNotify struct {
|
||||
Title string
|
||||
Body string
|
||||
}
|
||||
|
||||
type DFUProgress struct {
|
||||
Received int64 `mapstructure:"recvd"`
|
||||
Total int64 `mapstructure:"total"`
|
||||
Sent int64 `mapstructure:"sent"`
|
||||
}
|
||||
|
||||
type FSTransferProgress struct {
|
||||
Type int `json:"type" mapstructure:"type"`
|
||||
Total uint32 `json:"total" mapstructure:"total"`
|
||||
Sent uint32 `json:"sent" mapstructure:"sent"`
|
||||
Done bool `json:"done" mapstructure:"done"`
|
||||
}
|
||||
|
||||
type MotionValues struct {
|
||||
X int16
|
||||
Y int16
|
||||
Z int16
|
||||
}
|
||||
|
||||
type FileInfo struct {
|
||||
Name string `json:"name"`
|
||||
Size int64 `json:"size"`
|
||||
IsDir bool `json:"isDir"`
|
||||
}
|
||||
|
||||
func (fi FileInfo) String() string {
|
||||
var isDirChar rune
|
||||
if fi.IsDir {
|
||||
isDirChar = 'd'
|
||||
} else {
|
||||
isDirChar = '-'
|
||||
}
|
||||
|
||||
// Get human-readable value for file size
|
||||
val, unit := bytesHuman(fi.Size)
|
||||
prec := 0
|
||||
// If value is less than 10, set precision to 1
|
||||
if val < 10 {
|
||||
prec = 1
|
||||
}
|
||||
// Convert float to string
|
||||
valStr := strconv.FormatFloat(val, 'f', prec, 64)
|
||||
|
||||
// Return string formatted like so:
|
||||
// - 10 kB file
|
||||
// or:
|
||||
// d 0 B .
|
||||
return fmt.Sprintf(
|
||||
"%c %3s %-2s %s",
|
||||
isDirChar,
|
||||
valStr,
|
||||
unit,
|
||||
fi.Name,
|
||||
)
|
||||
}
|
||||
|
||||
// bytesHuman returns a human-readable string for
|
||||
// the amount of bytes inputted.
|
||||
func bytesHuman(b int64) (float64, string) {
|
||||
const unit = 1000
|
||||
// Set possible units prefixes (PineTime flash is 4MB)
|
||||
units := [2]rune{'k', 'M'}
|
||||
// If amount of bytes is less than smallest unit
|
||||
if b < unit {
|
||||
// Return unchanged with unit "B"
|
||||
return float64(b), "B"
|
||||
}
|
||||
|
||||
div, exp := int64(unit), 0
|
||||
// Get decimal values and unit prefix index
|
||||
for n := b / unit; n >= unit; n /= unit {
|
||||
div *= unit
|
||||
exp++
|
||||
}
|
||||
|
||||
// Create string for full unit
|
||||
unitStr := string([]rune{units[exp], 'B'})
|
||||
|
||||
// Return decimal with unit string
|
||||
return float64(b) / float64(div), unitStr
|
||||
}
|
||||
Reference in New Issue
Block a user