Boa tarde pessoal,
Estou utilizando este código que postaram aqui.
#include <SPI.h>
#include <Ethernet.h> //inclui blibioteca Ethernet
#include <ArdOSC.h> //inclui blibioteca ArdOSC
byte myMac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; //define MAC para shield Ethernet
byte myIP[] = {192, 168, 0, 100}; //define IP da central automação
byte destIP[] = {192, 168, 0, 200}; //define IP do dispositivo de comando OSC
int serverPort = 8000; //define a porta de recepção do comando OSC
int destPort = 9000; //define a porta de envio do comando OSC
int led1Pin = 8; //define a porta do arduino associada ao led 1 (vermelho)
int led2Pin = 9; //define a porta do arduino associada ao led 2 (verde)
int sw1Pin = 3; //define a porta do arduino associada ao botão 1 (esquerdo)
int sw2Pin = 7; //define a porta do arduino associada ao botão 2 (direito)
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
server.addCallback("/ard/led1", &func1); //define que a rotina "func1" será executada para o comando OSC "/ard/led1"
server.addCallback("/ard/led2", &func2); //define que a rotina "func2" será executada para o comando OSC "/ard/led2"
pinMode(led1Pin, OUTPUT); //define a porta digital 8 (ledPin1) do Arduino como saida
pinMode(led2Pin, OUTPUT); //define a porta digital 9 (ledPin2) do Arduino como saida
pinMode(sw1Pin, INPUT);
pinMode(sw2Pin, INPUT);
digitalWrite(sw1Pin, HIGH); //ativa PULL-UP interno do ATMEGA na porta digital 6(sw1)
digitalWrite(sw2Pin, HIGH); //ativa PULL-UP interno do ATMEGA na porta digital 7(sw2)
}
void loop() {
if (server.aviableCheck() > 0) { //verifica se existe alguma mensagem OSC disponível para leitura
}
if (digitalRead(sw1Pin) == LOW) { //verifica se o botao sw1 foi pressionado
int state = digitalRead(sw1Pin); //armazena em "state" o estado atual do led 1
OSCMessage txMes; //cria uma nova menssagem OSC
txMes.setAddress(destIP, destPort); //define o endereço e porta do destino da mensagem OSC
txMes.beginMessage("/ard/led1"); //define comando OSC
txMes.addArgFloat(!state); //define no estado do led 1 que será enviado no argumento OSC para ANDROID/IPAD/IPHONE/IPOD
client.send(&txMes); //envia mensagem OSC para atualizar novo estado do led 1 no ANDROID/IPAD/IPHONE/IPOD
digitalWrite(led1Pin, !state); //modifica estado da porta digital 8 (ledPin1)
delay(300); //delay de 300ms
}
if (digitalRead(sw2Pin) == LOW) { //verifica se o botao sw2 foi pressionado
int state = digitalRead(sw2Pin); //armazena em "state" o estado atual do led 2
OSCMessage txMes; //cria uma nova menssagem OSC
txMes.setAddress(destIP, destPort); //define o endereço e porta do destino da mensagem OSC
txMes.beginMessage("/ard/led2"); //define comando OSC
txMes.addArgFloat(!state); //define no estado do led 2 que será enviado no argumento OSC para ANDROID/IPAD/IPHONE/IPOD
client.send(&txMes); //envia mensagem OSC para atualizar novo estado do led 2 no ANDROID/IPAD/IPHONE/IPOD
digitalWrite(led2Pin, !state); //modifica estado da porta digital 9 (ledPin2)
delay(300); //delay de 300ms
}
}
void func1(OSCMessage *_mes) { //rotina que trata comando OSC "/ard/led1" recebido do ANDROID/IPAD/IPHONE/IPOD
int value = (int)_mes->getArgFloat(0); //armazena em "value" o argumento do comando OSC "/ard/led1"
digitalWrite(led1Pin, value); //muda estado da porta digital 8 (ledPin1) conforme argumento OSC recebido
}
void func2(OSCMessage *_mes) { //rotina que trata comando OSC "/ard/led2" recebido do ANDROID/IPAD/IPHONE/IPOD
int value = (int)_mes->getArgFloat(0); //armazena em "value" o argumento do comando OSC "/ard/led2"
digitalWrite(led2Pin, value); //muda estado da porta digital 9 (ledPin2) conforme argumento OSC recebido
}
===_FIM_DO_CODIGO====
Mas ao compilar dá este erro:
Arduino: 1.6.3 (Windows 7), Placa:"Arduino Uno"
A usar a biblioteca SPI na directoria: C:\Program Files\Arduino\hardware\arduino\avr\libraries\SPI
A usar a biblioteca Ethernet na directoria: C:\Program Files\Arduino\libraries\Ethernet
A usar a biblioteca ArdOSC na directoria: C:\Program Files\Arduino\libraries\ArdOSC (legacy)
C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10603 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files\Arduino\hardware\arduino\avr\libraries\SPI -IC:\Program Files\Arduino\libraries\Ethernet\src -IC:\Program Files\Arduino\libraries\ArdOSC C:\Users\User\AppData\Local\Temp\build6722181308024730752.tmp\sketch_OSC_2.cpp -o C:\Users\User\AppData\Local\Temp\build6722181308024730752.tmp\sketch_OSC_2.cpp.o
In file included from C:\Program Files\Arduino\libraries\ArdOSC/OSCCommon/OSCClient.h:21:0,
from C:\Program Files\Arduino\libraries\ArdOSC/ArdOSC.h:55,
from sketch_OSC_2.ino:4:
C:\Program Files\Arduino\libraries\ArdOSC/OSCCommon/OSCEncoder.h:27:33: error: 'OSCMessage::OSCMessage' is not a type
int16_t encode( OSCMessage::OSCMessage *mes ,uint8_t *_binData );
^
In file included from C:\Program Files\Arduino\libraries\ArdOSC/ArdOSC.h:55:0,
from sketch_OSC_2.ino:4:
C:\Program Files\Arduino\libraries\ArdOSC/OSCCommon/OSCClient.h:36:5: error: 'OSCEncoder::OSCEncoder' names the constructor, not the type
OSCEncoder::OSCEncoder encoder;
^
In file included from C:\Program Files\Arduino\libraries\ArdOSC/OSCCommon/OSCServer.h:19:0,
from C:\Program Files\Arduino\libraries\ArdOSC/ArdOSC.h:56,
from sketch_OSC_2.ino:4:
C:\Program Files\Arduino\libraries\ArdOSC/OSCCommon/OSCDecoder.h:26:30: error: 'OSCMessage::OSCMessage' is not a type
int16_t decode( OSCMessage::OSCMessage *_mes ,const uint8_t *_binData );
^
In file included from C:\Program Files\Arduino\libraries\ArdOSC/ArdOSC.h:56:0,
from sketch_OSC_2.ino:4:
C:\Program Files\Arduino\libraries\ArdOSC/OSCCommon/OSCServer.h:31:5: error: 'OSCDecoder::OSCDecoder' names the constructor, not the type
OSCDecoder::OSCDecoder _decoder;
^
C:\Program Files\Arduino\libraries\ArdOSC/OSCCommon/OSCServer.h:32:5: error: 'Pattern::Pattern' names the constructor, not the type
Pattern::Pattern _adrMatch;
^
Erro ao compilar.
===FIM_DO_ERRO===
Conseguem ajudar?
obrigado.