SMARTWAV mbed Library for use with the SMARTWAV audio processor, http://vizictechnologies.com/#/smart-wav/4559021187 www.vizictechnologies.com

Dependents:   SWAVandPCserial MediaPlayerSWav stateScript perturbRoom_legacy ... more

Committer:
emmanuelchio
Date:
Sat Feb 11 22:37:27 2012 +0000
Revision:
0:d3cb5755b201
SMARTWAV mbed Library 1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emmanuelchio 0:d3cb5755b201 1 /*********************************************************
emmanuelchio 0:d3cb5755b201 2 VIZIC TECHNOLOGIES. COPYRIGHT 2012.
emmanuelchio 0:d3cb5755b201 3 THE DATASHEETS, SOFTWARE AND LIBRARIES ARE PROVIDED "AS IS."
emmanuelchio 0:d3cb5755b201 4 VIZIC EXPRESSLY DISCLAIM ANY WARRANTY OF ANY KIND, WHETHER
emmanuelchio 0:d3cb5755b201 5 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED
emmanuelchio 0:d3cb5755b201 6 WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
emmanuelchio 0:d3cb5755b201 7 OR NONINFRINGEMENT. IN NO EVENT SHALL VIZIC BE LIABLE FOR
emmanuelchio 0:d3cb5755b201 8 ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES,
emmanuelchio 0:d3cb5755b201 9 LOST PROFITS OR LOST DATA, HARM TO YOUR EQUIPMENT, COST OF
emmanuelchio 0:d3cb5755b201 10 PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES,
emmanuelchio 0:d3cb5755b201 11 ANY CLAIMS BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO
emmanuelchio 0:d3cb5755b201 12 ANY DEFENCE THEREOF), ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION,
emmanuelchio 0:d3cb5755b201 13 OR OTHER SIMILAR COSTS.
emmanuelchio 0:d3cb5755b201 14 *********************************************************/
emmanuelchio 0:d3cb5755b201 15
emmanuelchio 0:d3cb5755b201 16 /********************************************************
emmanuelchio 0:d3cb5755b201 17 IMPORTANT : This library is created for the mbed Microcontroller Software IDE
emmanuelchio 0:d3cb5755b201 18 ********************************************************/
emmanuelchio 0:d3cb5755b201 19
emmanuelchio 0:d3cb5755b201 20
emmanuelchio 0:d3cb5755b201 21 #include "mbed.h"
emmanuelchio 0:d3cb5755b201 22 #include "SMARTWAV.h"
emmanuelchio 0:d3cb5755b201 23
emmanuelchio 0:d3cb5755b201 24 // SMART WAV DEFAULT BAUD RATE: 9600bps
emmanuelchio 0:d3cb5755b201 25 //It shoud be used like this : SMARTWAV audio(p13,p14,p15); for serial communication with SMARTWAV
emmanuelchio 0:d3cb5755b201 26 SMARTWAV::SMARTWAV(PinName TXPin, PinName RXPin, PinName resetPin): _serialSMARTWAV(TXPin,RXPin), _resetPin(resetPin){
emmanuelchio 0:d3cb5755b201 27 init();
emmanuelchio 0:d3cb5755b201 28 }
emmanuelchio 0:d3cb5755b201 29
emmanuelchio 0:d3cb5755b201 30 /********** high level commands, for the user! */
emmanuelchio 0:d3cb5755b201 31 void SMARTWAV::init(){ //configure the mbed for SMARTWAV board
emmanuelchio 0:d3cb5755b201 32 _serialSMARTWAV.baud(9600);
emmanuelchio 0:d3cb5755b201 33 _resetPin=1; //set the pin to 3.3v to avoid reset
emmanuelchio 0:d3cb5755b201 34 }
emmanuelchio 0:d3cb5755b201 35
emmanuelchio 0:d3cb5755b201 36 void SMARTWAV::reset(){ //Reset the SMARTWAV board
emmanuelchio 0:d3cb5755b201 37 _resetPin=0; //set the pin to GND to reset
emmanuelchio 0:d3cb5755b201 38 wait_ms(500);
emmanuelchio 0:d3cb5755b201 39 _resetPin=1; //set the pin to 3.3v to end reset
emmanuelchio 0:d3cb5755b201 40 wait_ms(500);
emmanuelchio 0:d3cb5755b201 41 }
emmanuelchio 0:d3cb5755b201 42
emmanuelchio 0:d3cb5755b201 43 unsigned char SMARTWAV::sleep(){ //Send SMARTWAV to sleep mode / awake from sleep mode
emmanuelchio 0:d3cb5755b201 44 _serialSMARTWAV.putc('Z');
emmanuelchio 0:d3cb5755b201 45 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 46 }
emmanuelchio 0:d3cb5755b201 47
emmanuelchio 0:d3cb5755b201 48 unsigned char SMARTWAV::getStatus(){ //Check active status
emmanuelchio 0:d3cb5755b201 49 unsigned char status;
emmanuelchio 0:d3cb5755b201 50
emmanuelchio 0:d3cb5755b201 51 _serialSMARTWAV.putc('A');
emmanuelchio 0:d3cb5755b201 52 status = _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 53 _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 54 return status;
emmanuelchio 0:d3cb5755b201 55 }
emmanuelchio 0:d3cb5755b201 56
emmanuelchio 0:d3cb5755b201 57 unsigned char SMARTWAV::playTracks(){ //Start playing any song on current Folder/Dir
emmanuelchio 0:d3cb5755b201 58 _serialSMARTWAV.putc('T');
emmanuelchio 0:d3cb5755b201 59 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 60 }
emmanuelchio 0:d3cb5755b201 61
emmanuelchio 0:d3cb5755b201 62 unsigned char SMARTWAV::pausePlay(){ //Pause / play song
emmanuelchio 0:d3cb5755b201 63 _serialSMARTWAV.putc('P');
emmanuelchio 0:d3cb5755b201 64 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 65 }
emmanuelchio 0:d3cb5755b201 66
emmanuelchio 0:d3cb5755b201 67 unsigned char SMARTWAV::rewindTrack(){ //Rewind Track
emmanuelchio 0:d3cb5755b201 68 _serialSMARTWAV.putc('R');
emmanuelchio 0:d3cb5755b201 69 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 70 }
emmanuelchio 0:d3cb5755b201 71
emmanuelchio 0:d3cb5755b201 72 unsigned char SMARTWAV::nextTrack(){ //Next Track
emmanuelchio 0:d3cb5755b201 73 _serialSMARTWAV.putc('N');
emmanuelchio 0:d3cb5755b201 74 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 75 }
emmanuelchio 0:d3cb5755b201 76
emmanuelchio 0:d3cb5755b201 77 unsigned char SMARTWAV::playTrackName(char name[]){ //play an Audio file contained on the micro SD card with the given name.
emmanuelchio 0:d3cb5755b201 78 unsigned char counter=0;
emmanuelchio 0:d3cb5755b201 79
emmanuelchio 0:d3cb5755b201 80 _serialSMARTWAV.putc('F');
emmanuelchio 0:d3cb5755b201 81 while(1){
emmanuelchio 0:d3cb5755b201 82 _serialSMARTWAV.putc(name[counter]);
emmanuelchio 0:d3cb5755b201 83 if(name[counter]==0x00){
emmanuelchio 0:d3cb5755b201 84 break;
emmanuelchio 0:d3cb5755b201 85 }
emmanuelchio 0:d3cb5755b201 86 counter++;
emmanuelchio 0:d3cb5755b201 87 }
emmanuelchio 0:d3cb5755b201 88 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 89 }
emmanuelchio 0:d3cb5755b201 90
emmanuelchio 0:d3cb5755b201 91 unsigned char SMARTWAV::stopTrack(){ //Stop playing any active song
emmanuelchio 0:d3cb5755b201 92 _serialSMARTWAV.putc('S');
emmanuelchio 0:d3cb5755b201 93 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 94 }
emmanuelchio 0:d3cb5755b201 95
emmanuelchio 0:d3cb5755b201 96 unsigned char SMARTWAV::continuousPlay(unsigned char enable){ //Enable/Disable continuous play, also disabled by calling stopTrack()
emmanuelchio 0:d3cb5755b201 97 unsigned char status;
emmanuelchio 0:d3cb5755b201 98
emmanuelchio 0:d3cb5755b201 99 _serialSMARTWAV.putc('C');
emmanuelchio 0:d3cb5755b201 100 _serialSMARTWAV.putc(enable);
emmanuelchio 0:d3cb5755b201 101 status = _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 102 _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 103 return status;
emmanuelchio 0:d3cb5755b201 104 }
emmanuelchio 0:d3cb5755b201 105
emmanuelchio 0:d3cb5755b201 106 unsigned char SMARTWAV::volume(unsigned char vol){ //Set Volume 0-255
emmanuelchio 0:d3cb5755b201 107 _serialSMARTWAV.putc('V');
emmanuelchio 0:d3cb5755b201 108 _serialSMARTWAV.putc(vol);
emmanuelchio 0:d3cb5755b201 109 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 110 }
emmanuelchio 0:d3cb5755b201 111
emmanuelchio 0:d3cb5755b201 112 unsigned char SMARTWAV::setFolder(char name[]){ //Set/Enters inside a folder/path on the micro SD card with the given name.
emmanuelchio 0:d3cb5755b201 113 unsigned char counter=0;
emmanuelchio 0:d3cb5755b201 114
emmanuelchio 0:d3cb5755b201 115 _serialSMARTWAV.putc('D');
emmanuelchio 0:d3cb5755b201 116 while(1){
emmanuelchio 0:d3cb5755b201 117 _serialSMARTWAV.putc(name[counter]);
emmanuelchio 0:d3cb5755b201 118 if(name[counter]==0x00){
emmanuelchio 0:d3cb5755b201 119 break;
emmanuelchio 0:d3cb5755b201 120 }
emmanuelchio 0:d3cb5755b201 121 counter++;
emmanuelchio 0:d3cb5755b201 122 }
emmanuelchio 0:d3cb5755b201 123 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 124 }
emmanuelchio 0:d3cb5755b201 125
emmanuelchio 0:d3cb5755b201 126 unsigned char SMARTWAV::getFileName(char name[]){ //Reads the name of the current/ last audio file being played on the SMARTWAV, and stores it on the name[] buffer.
emmanuelchio 0:d3cb5755b201 127 unsigned int i=0;
emmanuelchio 0:d3cb5755b201 128
emmanuelchio 0:d3cb5755b201 129 _serialSMARTWAV.putc('I');
emmanuelchio 0:d3cb5755b201 130 _serialSMARTWAV.putc('S');
emmanuelchio 0:d3cb5755b201 131 //receive all the file name
emmanuelchio 0:d3cb5755b201 132 while(1){
emmanuelchio 0:d3cb5755b201 133 name[i]=_serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 134 if(name[i]==0x00){
emmanuelchio 0:d3cb5755b201 135 break;
emmanuelchio 0:d3cb5755b201 136 }
emmanuelchio 0:d3cb5755b201 137 i++;
emmanuelchio 0:d3cb5755b201 138 }
emmanuelchio 0:d3cb5755b201 139 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 140 }
emmanuelchio 0:d3cb5755b201 141
emmanuelchio 0:d3cb5755b201 142 unsigned char SMARTWAV::getFolderName(char name[]){ //Reads the name of the current folderDir/path name the SMARTWAV, and stores it on the name[] buffer.
emmanuelchio 0:d3cb5755b201 143 unsigned int i=0;
emmanuelchio 0:d3cb5755b201 144
emmanuelchio 0:d3cb5755b201 145 _serialSMARTWAV.putc('I');
emmanuelchio 0:d3cb5755b201 146 _serialSMARTWAV.putc('D');
emmanuelchio 0:d3cb5755b201 147 //receive all the folder/path name
emmanuelchio 0:d3cb5755b201 148 while(1){
emmanuelchio 0:d3cb5755b201 149 name[i]=_serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 150 if(name[i]==0x00){
emmanuelchio 0:d3cb5755b201 151 break;
emmanuelchio 0:d3cb5755b201 152 }
emmanuelchio 0:d3cb5755b201 153 i++;
emmanuelchio 0:d3cb5755b201 154 }
emmanuelchio 0:d3cb5755b201 155 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 156 }
emmanuelchio 0:d3cb5755b201 157
emmanuelchio 0:d3cb5755b201 158 unsigned char SMARTWAV::getFileList(char list[]){ //Reads all the names of the .WAV files on the current folder/dir on the SMARTWAV, and stores it on the list[] buffer separated by comma ','.
emmanuelchio 0:d3cb5755b201 159 unsigned int i=0;
emmanuelchio 0:d3cb5755b201 160
emmanuelchio 0:d3cb5755b201 161 _serialSMARTWAV.putc('I');
emmanuelchio 0:d3cb5755b201 162 _serialSMARTWAV.putc('L');
emmanuelchio 0:d3cb5755b201 163 //receive all the file names
emmanuelchio 0:d3cb5755b201 164 while(1){
emmanuelchio 0:d3cb5755b201 165 list[i]=_serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 166 if(list[i]==0x00){
emmanuelchio 0:d3cb5755b201 167 break;
emmanuelchio 0:d3cb5755b201 168 }
emmanuelchio 0:d3cb5755b201 169 i++;
emmanuelchio 0:d3cb5755b201 170 }
emmanuelchio 0:d3cb5755b201 171 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 172 }
emmanuelchio 0:d3cb5755b201 173
emmanuelchio 0:d3cb5755b201 174 unsigned char SMARTWAV::getFolderList(char list[]){ //Reads all the folders on the current folder/dir on the SMARTWAV, and stores it on the list[] buffer separated by comma ','.
emmanuelchio 0:d3cb5755b201 175 unsigned int i=0;
emmanuelchio 0:d3cb5755b201 176
emmanuelchio 0:d3cb5755b201 177 _serialSMARTWAV.putc('I');
emmanuelchio 0:d3cb5755b201 178 _serialSMARTWAV.putc('X');
emmanuelchio 0:d3cb5755b201 179 //receive all the folder names
emmanuelchio 0:d3cb5755b201 180 while(1){
emmanuelchio 0:d3cb5755b201 181 list[i]=_serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 182 if(list[i]==0x00){
emmanuelchio 0:d3cb5755b201 183 break;
emmanuelchio 0:d3cb5755b201 184 }
emmanuelchio 0:d3cb5755b201 185 i++;
emmanuelchio 0:d3cb5755b201 186 }
emmanuelchio 0:d3cb5755b201 187 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 188 }
emmanuelchio 0:d3cb5755b201 189
emmanuelchio 0:d3cb5755b201 190 unsigned char SMARTWAV::playSpeed(unsigned char speed){ //Change current Play Speed: X0.5, X1, X1.5, X2, if track ends, play speed returns to 1.0X
emmanuelchio 0:d3cb5755b201 191
emmanuelchio 0:d3cb5755b201 192 _serialSMARTWAV.putc('M');
emmanuelchio 0:d3cb5755b201 193 _serialSMARTWAV.putc(speed);
emmanuelchio 0:d3cb5755b201 194 _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 195 return _serialSMARTWAV.getc();
emmanuelchio 0:d3cb5755b201 196 }
emmanuelchio 0:d3cb5755b201 197