Ви не увійшли.
та написал, и только потом дошло что отправляете в сон до события побудки
насчет платы, будет какой заказ и останутся лишние, отпишитесь, договоримся, вроде и не нужна, но защитить малину тоже особо не хочется.
а Вы молодцы. доводите свои идеи до релиза )
exit(0); ?? я бы предположил что это выход с основного цикла. тогда ничего не понимаю (
Для упрощения я выдернул этот пример из программы.
Поэтому даю как пример только один проход и закрываю цикл - exit(0);
В реальной жизни нужно писать полную программу.
void loop(void) {
DuneON(); //ВКЛЮЧАЕМ DUNE И ЗАПУСКАЕМ НА ВОСПРОИЗВЕДЕНИЕ ПЛЕЙЛИСТ HDD01/play1.m3u
delay(100000); //НЕМНОЖКО СЛУШАЕМ
DuneOFF(); //ВЫКЛЮЧАЕМ DUNE
exit(0);
}
exit(0); ?? я бы предположил что это выход с основного цикла. тогда ничего не понимаю (
"в которой Dune запускалась с комнатных выключателей", это прикольно, где свет включили там у музыка?
пошли в туалет - перекинуло звук на клозет? на кухню - там звучат любимые композиции? - прикольно )))
Вот примерчик управления медиаплеером Dune 303D по Ethernet сети.
#include <SPI.h>
#include <Ethernet.h>
//******************* ETHERNET ****************************
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEE };
EthernetServer server(80);
EthernetClient DUNE_CLIENT;
IPAddress ip(192,168,1,10); //TEENSY
IPAddress DUNE_IP(192,168,1,11); //АДРЕС DUNE В СЕТИ
//******************* ETHERNET ****************************
char Buffer[256];
char* IR[] = {"A05FBF00","A15EBF00","BC43BF00","F807BF00","E718BF00","E817BF00","E619BF00"};
enum { irPOWERON,irPOWEROFF,irPOWER, irPOPUPMENU,irRIGHT,irLEFT, irSTOP};
char IRCommand[] = "GET /cgi-bin/do?cmd=ir_code&ir_code=";
char PlayCommand[] = "GET /cgi-bin/do?cmd=start_file_playback&media_url=storage_name:";
char PlayListCommand[] = "GET /cgi-bin/do?cmd=start_playlist_playback&media_url=storage_name:";
char C11[2] = {char(0x2F),char(0x2F)};
char LR[2] = {char(0x0D),char(0x0A)};
char PlayList1[] = "HDD01/play1.m3u"; //ПЛЕЙЛИСТ ДЛЯ ВОСПРОИЗВЕДЕНИЯ
void setup() {
Serial.begin(9600);
//Перезапуск Ethernet chip
pinMode(10, OUTPUT); digitalWrite(10, HIGH);
Ethernet.begin(mac, ip);
server.begin();
Serial.println("Ethernet start");
}
void DuneOFF() {
if (DUNE_CLIENT.connect(DUNE_IP, 80)) {
Serial.println("DUNE_CLIENT.connect");
memset(Buffer,0,256);
memcpy(Buffer,IRCommand,sizeof(IRCommand)-1);
memcpy(Buffer+sizeof(IRCommand)-1,IR[irPOWEROFF],8);
Serial.print("Send command = "); Serial.println(Buffer);
DUNE_CLIENT.println(Buffer);
DUNE_CLIENT.stop();
}
}
void DuneON() {
if (DUNE_CLIENT.connect(DUNE_IP, 80)) {
Serial.println("DUNE_CLIENT.connect");
memset(Buffer,0,256);
memcpy(Buffer,IRCommand,sizeof(IRCommand)-1);
memcpy(Buffer+sizeof(IRCommand)-1,IR[irPOWERON],8);
Serial.print("Send command = "); Serial.println(Buffer);
DUNE_CLIENT.println(Buffer);
DUNE_CLIENT.stop();
double Time1 = millis();
double dt=0;
while (dt<20000) {
delay(200);
dt=millis()-Time1;
}
} else Serial.println("NOT DUNE connect!!!!");
if (DUNE_CLIENT.connect(DUNE_IP, 80)) {
Serial.println("DUNE_CLIENT.connect");
memset(Buffer,0,256);
memcpy(Buffer,PlayListCommand,sizeof(PlayListCommand));
memcpy(Buffer+sizeof(PlayListCommand)-1,C11,2);
memcpy(Buffer+sizeof(PlayListCommand)+1,PlayList1,sizeof(PlayList1)-1);
Serial.print("Send command = "); Serial.println(Buffer);
DUNE_CLIENT.println(Buffer);
DUNE_CLIENT.stop();
} else Serial.println("NOT DUNE connect!!!!");
}
void loop(void) {
DuneON(); //ВКЛЮЧАЕМ DUNE И ЗАПУСКАЕМ НА ВОСПРОИЗВЕДЕНИЕ ПЛЕЙЛИСТ HDD01/play1.m3u
delay(100000); //НЕМНОЖКО СЛУШАЕМ
DuneOFF(); //ВЫКЛЮЧАЕМ DUNE
exit(0);
}
Этот код я для простоты понимания извлек из своей программы, в которой Dune запускалась с комнатных выключателей и через мобилный телефон. Усилителем служил Yamaha RX-V673, который тоже управлялся по Ethernet - сети. В результате получился недорогой 2-х зонный Multiroom c отличным звучанием. По этому принципу можно запускать на воспроизведение также и отдельные композиции.
Ссылку на пример управления ресивером Yamaha RX-V673 я уже давал. На всякий случай повторяю: https://sites.google.com/site/twosoftdo … plications