Prevent sending of extra zero bytes during DFU

This commit is contained in:
Elara 2021-10-06 17:08:21 -07:00
parent dbfe8bb8c4
commit a1e08ed862
1 changed files with 10 additions and 2 deletions

12
dfu.go
View File

@ -346,8 +346,16 @@ func (dfu *DFU) stepSeven() error {
// While send is not done
for !dfu.fwSendDone {
for i := 0; i < DFUPktRecvInterval; i++ {
// Create byte slice with segment size
segment := make([]byte, DFUSegmentSize)
amtLeft := int(dfu.fwSize) - dfu.bytesSent
var segment []byte
// If amount left is less than segment size
if amtLeft < DFUSegmentSize {
// Create byte slice with amount left
segment = make([]byte, amtLeft)
} else {
// Create byte slice with segment size
segment = make([]byte, DFUSegmentSize)
}
// Write firmware image into slice
n, err := dfu.fwImage.Read(segment)
// If EOF, send is done