初始化提交
This commit is contained in:
201
arduino-cli/libraries/DFRobotDFPlayerMini/DFRobotDFPlayerMini.h
Normal file
201
arduino-cli/libraries/DFRobotDFPlayerMini/DFRobotDFPlayerMini.h
Normal file
@@ -0,0 +1,201 @@
|
||||
/*!
|
||||
* @file DFRobotDFPlayerMini.h
|
||||
* @brief DFPlayer - An Arduino Mini MP3 Player From DFRobot
|
||||
* @n Header file for DFRobot's DFPlayer
|
||||
*
|
||||
* @copyright [DFRobot]( http://www.dfrobot.com ), 2016
|
||||
* @copyright GNU Lesser General Public License
|
||||
*
|
||||
* @author [Angelo](Angelo.qiao@dfrobot.com)
|
||||
* @version V1.0.3
|
||||
* @date 2016-12-07
|
||||
*/
|
||||
|
||||
#include "Arduino.h"
|
||||
|
||||
#ifndef DFRobotDFPlayerMini_cpp
|
||||
#define DFRobotDFPlayerMini_cpp
|
||||
|
||||
|
||||
#define DFPLAYER_EQ_NORMAL 0
|
||||
#define DFPLAYER_EQ_POP 1
|
||||
#define DFPLAYER_EQ_ROCK 2
|
||||
#define DFPLAYER_EQ_JAZZ 3
|
||||
#define DFPLAYER_EQ_CLASSIC 4
|
||||
#define DFPLAYER_EQ_BASS 5
|
||||
|
||||
#define DFPLAYER_DEVICE_U_DISK 1
|
||||
#define DFPLAYER_DEVICE_SD 2
|
||||
#define DFPLAYER_DEVICE_AUX 3
|
||||
#define DFPLAYER_DEVICE_SLEEP 4
|
||||
#define DFPLAYER_DEVICE_FLASH 5
|
||||
|
||||
#define DFPLAYER_RECEIVED_LENGTH 10
|
||||
#define DFPLAYER_SEND_LENGTH 10
|
||||
|
||||
//#define _DEBUG
|
||||
|
||||
#define TimeOut 0
|
||||
#define WrongStack 1
|
||||
#define DFPlayerCardInserted 2
|
||||
#define DFPlayerCardRemoved 3
|
||||
#define DFPlayerCardOnline 4
|
||||
#define DFPlayerPlayFinished 5
|
||||
#define DFPlayerError 6
|
||||
#define DFPlayerUSBInserted 7
|
||||
#define DFPlayerUSBRemoved 8
|
||||
#define DFPlayerUSBOnline 9
|
||||
#define DFPlayerCardUSBOnline 10
|
||||
#define DFPlayerFeedBack 11
|
||||
|
||||
#define Busy 1
|
||||
#define Sleeping 2
|
||||
#define SerialWrongStack 3
|
||||
#define CheckSumNotMatch 4
|
||||
#define FileIndexOut 5
|
||||
#define FileMismatch 6
|
||||
#define Advertise 7
|
||||
|
||||
#define Stack_Header 0
|
||||
#define Stack_Version 1
|
||||
#define Stack_Length 2
|
||||
#define Stack_Command 3
|
||||
#define Stack_ACK 4
|
||||
#define Stack_Parameter 5
|
||||
#define Stack_CheckSum 7
|
||||
#define Stack_End 9
|
||||
|
||||
class DFRobotDFPlayerMini {
|
||||
Stream* _serial;
|
||||
|
||||
unsigned long _timeOutTimer;
|
||||
unsigned long _timeOutDuration = 500;
|
||||
|
||||
uint8_t _received[DFPLAYER_RECEIVED_LENGTH];
|
||||
uint8_t _sending[DFPLAYER_SEND_LENGTH] = {0x7E, 0xFF, 06, 00, 01, 00, 00, 00, 00, 0xEF};
|
||||
|
||||
uint8_t _receivedIndex=0;
|
||||
|
||||
void sendStack();
|
||||
void sendStack(uint8_t command);
|
||||
void sendStack(uint8_t command, uint16_t argument);
|
||||
void sendStack(uint8_t command, uint8_t argumentHigh, uint8_t argumentLow);
|
||||
|
||||
void enableACK();
|
||||
void disableACK();
|
||||
|
||||
void uint16ToArray(uint16_t value,uint8_t *array);
|
||||
|
||||
uint16_t arrayToUint16(uint8_t *array);
|
||||
|
||||
uint16_t calculateCheckSum(uint8_t *buffer);
|
||||
|
||||
|
||||
|
||||
void parseStack();
|
||||
bool validateStack();
|
||||
|
||||
uint8_t device = DFPLAYER_DEVICE_SD;
|
||||
|
||||
public:
|
||||
|
||||
uint8_t _handleType;
|
||||
uint8_t _handleCommand;
|
||||
uint16_t _handleParameter;
|
||||
bool _isAvailable = false;
|
||||
bool _isSending = false;
|
||||
|
||||
bool handleMessage(uint8_t type, uint16_t parameter = 0);
|
||||
bool handleError(uint8_t type, uint16_t parameter = 0);
|
||||
|
||||
uint8_t readCommand();
|
||||
|
||||
bool begin(Stream& stream, bool isACK = true, bool doReset = true);
|
||||
|
||||
bool waitAvailable(unsigned long duration = 0);
|
||||
|
||||
bool available();
|
||||
|
||||
uint8_t readType();
|
||||
|
||||
uint16_t read();
|
||||
|
||||
void setTimeOut(unsigned long timeOutDuration);
|
||||
|
||||
void next();
|
||||
|
||||
void previous();
|
||||
|
||||
void play(int fileNumber=1);
|
||||
|
||||
void volumeUp();
|
||||
|
||||
void volumeDown();
|
||||
|
||||
void volume(uint8_t volume);
|
||||
|
||||
void EQ(uint8_t eq);
|
||||
|
||||
void loop(int fileNumber);
|
||||
|
||||
void outputDevice(uint8_t device);
|
||||
|
||||
void sleep();
|
||||
|
||||
void reset();
|
||||
|
||||
void start();
|
||||
|
||||
void pause();
|
||||
|
||||
void playFolder(uint8_t folderNumber, uint8_t fileNumber);
|
||||
|
||||
void outputSetting(bool enable, uint8_t gain);
|
||||
|
||||
void enableLoopAll();
|
||||
|
||||
void disableLoopAll();
|
||||
|
||||
void playMp3Folder(int fileNumber);
|
||||
|
||||
void advertise(int fileNumber);
|
||||
|
||||
void playLargeFolder(uint8_t folderNumber, uint16_t fileNumber);
|
||||
|
||||
void stopAdvertise();
|
||||
|
||||
void stop();
|
||||
|
||||
void loopFolder(int folderNumber);
|
||||
|
||||
void randomAll();
|
||||
|
||||
void enableLoop();
|
||||
|
||||
void disableLoop();
|
||||
|
||||
void enableDAC();
|
||||
|
||||
void disableDAC();
|
||||
|
||||
int readState();
|
||||
|
||||
int readVolume();
|
||||
|
||||
int readEQ();
|
||||
|
||||
int readFileCounts(uint8_t device);
|
||||
|
||||
int readCurrentFileNumber(uint8_t device);
|
||||
|
||||
int readFileCountsInFolder(int folderNumber);
|
||||
|
||||
int readFileCounts();
|
||||
|
||||
int readFolderCounts();
|
||||
|
||||
int readCurrentFileNumber();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user