can someone help me? with my code

I can not for the arduino ta giving error

My code is as follows
The error starts at the void func3

#include <SPI.h>
#include <Ethernet.h>
#include <ArdOSC.h> //inclui blibioteca ArdOSC

byte myMac={0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //define MAC para shield Ethernet
byte myIp = { 192, 168, 0, 1 }; //define IP da central automação
int serverPort = 8000; //define a porta de recepção do comando OSC
int destPort= 9000; //define a porta de envio do comando OSC
int relePin = 5; //define a porta do arduino associada ao led
int relePin2 = 6;
int relePin3 = 7;
int relePin4 = 8;
int flag=0;
int flag2=0;
int flag3=0;
int flag4=0;

OSCServer server; //inicializa o servidor OSC (serviço que trata a recepção de mensagem OSC)
OSCClient client; //inicializa o cliente OSC (serviço que trata o envio de mensagem OSC)

void setup(){

Ethernet.begin(myMac ,myIp); //inicializa a interface ethernet
server.begin(serverPort); //inicializa o servidor OSC definindo a porta de RX
//set callback function & oscaddress
server.addCallback("/ard/relePin",&func1); //define que a rotina “func1” será executada para o comando OSC “/ard/ledPin”
server.addCallback("/ard/relePin2",&func2); //define que a rotina “func1” será executada para o comando OSC “/ard/ledPin”
server.addCallback("/ard/relePin3",&func3); //define que a rotina “func1” será executada para o comando OSC “/ard/relePin”
server.addCallback("/ard/relePin4",&func4); //define que a rotina “func1” será executada para o comando OSC “/ard/ledPin”
pinMode(relePin, OUTPUT); //define a porta digital 9 (ledPin) do Arduino como saida
pinMode(relePin2, OUTPUT);
pinMode(relePin3, OUTPUT);
pinMode(relePin4, OUTPUT);
}

void loop(){

if(server.aviableCheck()>0){ //verifica se existe alguma mensagem OSC disponível para leitura
// Serial.println("alive! ");
}

}

//===============================================================================================================
void func1(OSCMessage *_mes){ //rotina que trata comando OSC “/ard/led2” recebido do ANDROID
int value=(int)_mes->getArgFloat(0); //armazena em “value” o argumento do comando OSC “/ard/led2”
digitalWrite(relePin,value); //muda estado da porta digital 8 (ledPin2) conforme argumento OSC recebido

//create new osc message
OSCMessage txMes; //cria uma nova menssagem OSC

//set destination ip address & port no
txMes.setAddress(_mes->getIpAddress(),destPort); //define o endereço e porta do destino da mensagem OSC
txMes.beginMessage("/ard/relePin"); //define comando OSC
txMes.addArgFloat(flag); //define no estado do led 2 que será enviado no argumento OSC para ANDROID

if(flag==1){
flag=0;
digitalWrite(relePin, LOW);
}
else{
flag=1;
digitalWrite(relePin, HIGH);
}

txMes.addArgInt32(flag);

//send osc message
client.send(&txMes); //envia mensagem OSC para atualizar novo estado do led 1 no ANDROID

}
//====================================================================================================================
void func2(OSCMessage *_mes){ //rotina que trata comando OSC “/ard/led2” recebido do ANDROID
int value=(int)_mes->getArgFloat(0); //armazena em “value” o argumento do comando OSC “/ard/led2”
digitalWrite(relePin2,value); //muda estado da porta digital 9 (ledPin2) conforme argumento OSC recebido

//create new osc message
OSCMessage txMes; //cria uma nova menssagem OSC

//set destination ip address & port no
txMes.setAddress(_mes->getIpAddress(),destPort); //define o endereço e porta do destino da mensagem OSC
txMes.beginMessage("/ard/relePin2"); //define comando OSC
txMes.addArgFloat(flag2); //define no estado do led 2 que será enviado no argumento OSC para ANDROID

if(flag2==1){
flag2=0;
digitalWrite(relePin2, HIGH);
}
else{
flag2=1;
digitalWrite(relePin2, LOW);
}

//==========================================================================================================================
void func3(OSCMessage *_mes){ //rotina que trata comando OSC “/ard/led2” recebido do ANDROID
int value=(int)_mes->getArgFloat(0); //armazena em “value” o argumento do comando OSC “/ard/led2”
digitalWrite(relePin3,value); //muda estado da porta digital 9 (ledPin2) conforme argumento OSC recebido

//create new osc message
OSCMessage txMes; //cria uma nova menssagem OSC

//set destination ip address & port no
txMes.setAddress(_mes->getIpAddress(),destPort); //define o endereço e porta do destino da mensagem OSC
txMes.beginMessage("/ard/relePin3"); //define comando OSC
txMes.addArgFloat(flag3); //define no estado do led 2 que será enviado no argumento OSC para ANDROID

if(flag2==1){
flag3=0;
digitalWrite(relePin3, HIGH);
}
else{
flag3=1;
digitalWrite(relePin3, LOW);
}

//=====================================================================================================================

void func4(OSCMessage *_mes){ //rotina que trata comando OSC “/ard/led2” recebido do ANDROID
int value=(int)_mes->getArgFloat(0); //armazena em “value” o argumento do comando OSC “/ard/led2”
digitalWrite(relePin4,value); //muda estado da porta digital 9 (ledPin2) conforme argumento OSC recebido

//create new osc message
OSCMessage txMes; //cria uma nova menssagem OSC

//set destination ip address & port no
txMes.setAddress(_mes->getIpAddress(),destPort); //define o endereço e porta do destino da mensagem OSC
txMes.beginMessage("/ard/relePin4"); //define comando OSC
txMes.addArgFloat(flag4); //define no estado do led 2 que será enviado no argumento OSC para ANDROID

if(flag4==1){
flag4=0;
digitalWrite(relePin4, HIGH);
}
else{
flag4=1;
digitalWrite(relePin4, LOW);
}

}

Read How to post code properly and then fix up your message with tags.

Pete

If you put every { on a new line, instead of trying to hide it between the function implementation statement and the useless comment, and it you properly indented your code, you'd see that func2 (stupid name) is missing a close }.

hi,

Maybe some Italian artist can create the "Arduino Scream!" to go along with the audio....

What is the error message?

Just to start...

you are missin the

}

for function 2

also, you should put your code in code tags and pick better topic names.

Qdeathstar:
you are missin the

}

for function 2

Which is exactly what PaulS told you here in your other identical thread many hours before you started this thread.

This is incredibly annoying.

Please do not cross-post. This wastes time and resources as people attempt to answer your question on multiple threads.

Threads merged.

How to use this forum

Please edit your post, select the code, and put it between [code][/code] tags.

You can do that by hitting the # button above the posting area.

If you start another thread, without reading the forum guidelines, and with another useless thread title, and ignore the advice people are giving you, I will delete your account.

  • Moderator