I have been through this code several times, but it is still not working. It is in c++ and designed for an arduino microcontroller. When I try to upload/verify, I get this error:
morse_send:37:20: error: a function-definition is not allowed here before '{' token
void MorseDot(){
^
morse_send:41:21: error: a function-definition is not allowed here before '{' token
void MorseDash(){
^
morse_send:46:31: error: a function-definition is not allowed here before '{' token
void GetChar(char tmpChar){
^
exit status 1
a function-definition is not allowed here before '{' token
Here is my code:
/* ********************************** /
* Morse Code Translator
* Copyright (c) Gabriel Gutierrez
/* ********************************* */
char stringToMorse[] = "";
int audio = 8; // buzzer is connected to pin 8
int pitch = 1200; // music note/pitch
int dotLen = 100; // length of the dot
int dashLen = dotLen * 3; // length of the dash
void loop() {
char inChar = 0;
char inData[100] = "";
String variable = "";
String variable1 = "";
int index1 = 0;
// Checks is the serial monitor is sending characters to the board
if ( Serial.available() > 0 ) {
while (Serial.available() > 0 && index1 < 100) {
delay(100);
inChar = Serial.read();
inData[index1] = inChar;
index1++;
inData[index1] = '\0';
}
}
// Converts the string to uppercase to make it easier to convert to morse
variable.toUpperCase();
for (byte i = 0 ; i < 100 ; i++) {
variable.concat(String(inData[i]));
}
delay(20);
// The functions for a dash and a dot
void MorseDot(){
tone(audio, note, dotLen); // start playing a tone
delay(dotLen); // hold for the predefined length of time
};
void MorseDash(){
tone(audio, note, dashLen); // start playing a tone
delay(dashLen); // hold for the predefined length of time
};
void GetChar(char tmpChar){
switch (tmpChar){
case 'a':
MorseDot();
delay(100);
MorseDash();
delay(100);
break;
case 'b':
MorseDash();
delay(100);
MorseDot();
delay(100);
MorseDot();
delay(100);
MorseDot();
delay(100);
break;
case 'c':
MorseDash();
delay(100);
MorseDot();
delay(100);
MorseDash();
delay(100);
MorseDot();
delay(100);
break;
case 'd':
MorseDash();
delay(100);
MorseDot();
delay(100);
MorseDot();
delay(100);
break;
case 'e':
MorseDot();
delay(100);
break;
case 'f':
MorseDot();
delay(100);
MorseDot();
delay(100);
MorseDash();
delay(100);
MorseDot();
delay(100);
break;
case 'g':
MorseDash();
delay(100);
MorseDash();
delay(100);
MorseDot();
delay(100);
break;
case 'h':
MorseDot();
delay(100);
MorseDot();
delay(100);
MorseDot();
delay(100);
MorseDot();
delay(100);
break;
case 'i':
MorseDot();
delay(100);
MorseDot();
delay(100);
break;
case 'j':
MorseDot();
delay(100);
MorseDash();
delay(100);
MorseDash();
delay(100);
MorseDash();
delay(100);
break;
case 'k':
MorseDash();
delay(100);
MorseDot();
delay(100);
MorseDash();
delay(100);
break;
case 'l':
MorseDot();
delay(100);
MorseDash();
delay(100);
MorseDot();
delay(100);
MorseDot();
delay(100);
break;
case 'm':
MorseDash();
delay(100);
MorseDash();
delay(100);
break;
case 'n':
MorseDash();
delay(100);
MorseDot();
delay(100);
break;
case 'o':
MorseDash();
delay(100);
MorseDash();
delay(100);
MorseDash();
delay(100);
break;
case 'p':
MorseDot();
delay(100);
MorseDash();
delay(100);
MorseDash();
delay(100);
MorseDot();
delay(100);
break;
case 'q':
MorseDash();
delay(100);
MorseDash();
delay(100);
MorseDot();
delay(100);
MorseDash();
delay(100);
break;
case 'r':
MorseDot();
delay(100);
MorseDash();
delay(100);
MorseDot();
delay(100);
break;
case 's':
MorseDot();
delay(100);
MorseDot();
delay(100);
MorseDot();
delay(100);
break;
case 't':
MorseDash();
delay(100);
break;
case 'u':
MorseDot();
delay(100);
MorseDot();
delay(100);
MorseDash();
delay(100);
break;
case 'v':
MorseDot();
delay(100);
MorseDot();
delay(100);
MorseDot();
delay(100);
MorseDash();
delay(100);
break;
case 'w':
MorseDot();
delay(100);
MorseDash();
delay(100);
MorseDash();
delay(100);
break;
case 'x':
MorseDash();
delay(100);
MorseDot();
delay(100);
MorseDot();
delay(100);
MorseDash();
delay(100);
break;
case 'y':
MorseDash();
delay(100);
MorseDot();
delay(100);
MorseDash();
delay(100);
MorseDash();
delay(100);
break;
case 'z':
MorseDash();
delay(100);
MorseDash();
delay(100);
MorseDot();
delay(100);
MorseDot();
delay(100);
break;
default:
break;
}
}
}
To my understanding, a token error means that I did not close a {}
, []
, or ()
, but I can’t find any such instance. Thanks for any help!