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

10
dfu.go
View File

@ -346,8 +346,16 @@ func (dfu *DFU) stepSeven() error {
// While send is not done // While send is not done
for !dfu.fwSendDone { for !dfu.fwSendDone {
for i := 0; i < DFUPktRecvInterval; i++ { for i := 0; i < DFUPktRecvInterval; i++ {
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 // Create byte slice with segment size
segment := make([]byte, DFUSegmentSize) segment = make([]byte, DFUSegmentSize)
}
// Write firmware image into slice // Write firmware image into slice
n, err := dfu.fwImage.Read(segment) n, err := dfu.fwImage.Read(segment)
// If EOF, send is done // If EOF, send is done