Send response types in socket responses and create api package

This commit is contained in:
2021-10-22 20:47:57 -07:00
parent f001dd6079
commit 80a5867d6b
6 changed files with 317 additions and 4 deletions
+33
View File
@@ -0,0 +1,33 @@
package api
import (
"encoding/json"
"go.arsenm.dev/itd/internal/types"
)
type DFUProgress types.DFUProgress
type UpgradeType uint8
const (
UpgradeTypeArchive UpgradeType = iota
UpgradeTypeFiles
)
func (c *Client) FirmwareUpgrade(upgType UpgradeType, files ...string) (<-chan DFUProgress, error) {
err := json.NewEncoder(c.conn).Encode(types.Request{
Type: types.ReqTypeFwUpgrade,
Data: types.ReqDataFwUpgrade{
Type: int(upgType),
Files: files,
},
})
if err != nil {
return nil, err
}
c.dfuProgressCh = make(chan DFUProgress, 5)
return c.dfuProgressCh, nil
}