Skip to content

Commit

Permalink
Error end (#29)
Browse files Browse the repository at this point in the history
* Update DFMiniMp3.h

* increment version
  • Loading branch information
Makuna authored Oct 7, 2019
1 parent 9700076 commit 39db009
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 4 deletions.
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=DFPlayer Mini Mp3 by Makuna
version=1.0.3
version=1.0.4
author=Michael C. Miller ([email protected])
maintainer=Michael C. Miller ([email protected])
sentence=Library for the DFPlayer Mini Mp3 module
Expand Down
23 changes: 20 additions & 3 deletions src/DFMiniMp3.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ enum DfMp3_Error
DfMp3_Error_FileMismatch,
DfMp3_Error_Advertise,
// from library
DfMp3_Error_RxTimeout = 0x81,
DfMp3_Error_PacketSize,
DfMp3_Error_RxTimeout = 0x81,
DfMp3_Error_PacketSize,
DfMp3_Error_PacketHeader,
DfMp3_Error_PacketChecksum,
DfMp3_Error_General = 0xff
Expand Down Expand Up @@ -143,6 +143,7 @@ template<class T_SERIAL_METHOD, class T_NOTIFICATION_METHOD> class DFMiniMp3

uint16_t getCurrentTrack()
{
drainResponses();
sendPacket(0x4c);
return listenForReply(0x4c);
}
Expand All @@ -155,6 +156,7 @@ template<class T_SERIAL_METHOD, class T_NOTIFICATION_METHOD> class DFMiniMp3

uint8_t getVolume()
{
drainResponses();
sendPacket(0x43);
return static_cast<uint8_t>(listenForReply(0x43));
}
Expand Down Expand Up @@ -186,6 +188,7 @@ template<class T_SERIAL_METHOD, class T_NOTIFICATION_METHOD> class DFMiniMp3

DfMp3_PlaybackMode getPlaybackMode()
{
drainResponses();
sendPacket(0x45);
return static_cast<DfMp3_PlaybackMode>(listenForReply(0x45));
}
Expand All @@ -203,6 +206,7 @@ template<class T_SERIAL_METHOD, class T_NOTIFICATION_METHOD> class DFMiniMp3

DfMp3_Eq getEq()
{
drainResponses();
sendPacket(0x44);
return static_cast<DfMp3_Eq>(listenForReply(0x44));
}
Expand Down Expand Up @@ -241,24 +245,28 @@ template<class T_SERIAL_METHOD, class T_NOTIFICATION_METHOD> class DFMiniMp3

uint16_t getStatus()
{
drainResponses();
sendPacket(0x42);
return listenForReply(0x42);
}

uint16_t getFolderTrackCount(uint16_t folder)
{
drainResponses();
sendPacket(0x4e, folder);
return listenForReply(0x4e);
}

uint16_t getTotalTrackCount()
{
drainResponses();
sendPacket(0x48);
return listenForReply(0x48);
}

uint16_t getTotalFolderCount()
{
drainResponses();
sendPacket(0x4F);
return listenForReply(0x4F);
}
Expand Down Expand Up @@ -307,6 +315,14 @@ template<class T_SERIAL_METHOD, class T_NOTIFICATION_METHOD> class DFMiniMp3
uint16_t _lastSendSpace;
bool _isOnline;

void drainResponses()
{
while (_serial.available() > 0)
{
listenForReply(0x00);
}
}

void sendPacket(uint8_t command, uint16_t arg = 0, uint16_t sendSpaceNeeded = c_msSendSpace)
{
uint8_t out[DfMp3_Packet_SIZE] = { 0x7E,
Expand Down Expand Up @@ -354,7 +370,7 @@ template<class T_SERIAL_METHOD, class T_NOTIFICATION_METHOD> class DFMiniMp3
if (read != 1)
{
// nothing read
*argument = DfMp3_Error_RxTimeout;
*argument = DfMp3_Error_RxTimeout;
return false;
}
} while (in[DfMp3_Packet_StartCode] != 0x7e);
Expand Down Expand Up @@ -448,6 +464,7 @@ template<class T_SERIAL_METHOD, class T_NOTIFICATION_METHOD> class DFMiniMp3

case 0x40:
T_NOTIFICATION_METHOD::OnError(replyArg);
return 0;
break;

default:
Expand Down

0 comments on commit 39db009

Please sign in to comment.