|
@@ -145,10 +145,16 @@ static shellmatta_retCode_t ymodem_stateMachine(shellmatta_handle_t handle, uint
|
|
|
break;
|
|
|
|
|
|
case YMODEM_EOT:
|
|
|
- inst->ymodem.transmissionCompleteCallback();
|
|
|
+
|
|
|
+ if((inst->ymodem.totalBytesReceived < inst->ymodem.fileSize) ||
|
|
|
+ ((inst->ymodem.totalBytesReceived - inst->ymodem.fileSize) >= YMODEM_PACKET_SIZE_1K))
|
|
|
+ {
|
|
|
+ ret = SHELLMATTA_ERROR;
|
|
|
+ }
|
|
|
+
|
|
|
+ inst->ymodem.transmissionCompleteCallback(ret);
|
|
|
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
shellmatta_ymodem_control(handle, YMODEM_ACK);
|