mirror of
https://github.com/brmlab/brmdoor.git
synced 2025-06-08 11:44:01 +02:00
Sketch: Support an 'a' command to play alarm sound
This commit is contained in:
parent
651a2cc35d
commit
f8503ab86f
1 changed files with 13 additions and 4 deletions
|
@ -44,6 +44,9 @@ int noteDurations_nak[] = { 330, 330, 330, 250, 120, 330, 250, 120, 500 };
|
||||||
int melody_ack[] = { NOTE_D6, NOTE_A6, NOTE_C7, NOTE_A6 };
|
int melody_ack[] = { NOTE_D6, NOTE_A6, NOTE_C7, NOTE_A6 };
|
||||||
int noteDurations_ack[] = { 120, 500, 120, 500 };
|
int noteDurations_ack[] = { 120, 500, 120, 500 };
|
||||||
|
|
||||||
|
int melody_alarm[] = { NOTE_D6, NOTE_F6, NOTE_D6, NOTE_F6 };
|
||||||
|
int noteDurations_alarm[] = { 700, 700, 700, 700 };
|
||||||
|
|
||||||
void toneManual(int pin, int frequency, int duration)
|
void toneManual(int pin, int frequency, int duration)
|
||||||
{
|
{
|
||||||
unsigned long period = 1000000/frequency;
|
unsigned long period = 1000000/frequency;
|
||||||
|
@ -60,21 +63,24 @@ void toneManual(int pin, int frequency, int duration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void playMelody(int *melody, int *noteDurations, int notes)
|
void playMelody(int *melody, int *noteDurations, int dcoef, int notes)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < notes; i++) {
|
for (i = 0; i < notes; i++) {
|
||||||
// comSerial.print(melody[i]); comSerial.write(" "); comSerial.print(noteDurations[i]); comSerial.write("\n");
|
// comSerial.print(melody[i]); comSerial.write(" "); comSerial.print(noteDurations[i]); comSerial.write("\n");
|
||||||
toneManual(soundPin, melody[i], noteDurations[i]);
|
toneManual(soundPin, melody[i], noteDurations[i]);
|
||||||
|
|
||||||
delay(noteDurations[i] * 6/10);
|
delay(noteDurations[i] * dcoef/10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void playMelodyAck()
|
void playMelodyAck()
|
||||||
{ playMelody(melody_ack, noteDurations_ack, sizeof(melody_ack)/sizeof(melody_ack[0])); }
|
{ playMelody(melody_ack, noteDurations_ack, 6, sizeof(melody_ack)/sizeof(melody_ack[0])); }
|
||||||
void playMelodyNak()
|
void playMelodyNak()
|
||||||
{ playMelody(melody_nak, noteDurations_nak, sizeof(melody_nak)/sizeof(melody_nak[0])); }
|
{ playMelody(melody_nak, noteDurations_nak, 6, sizeof(melody_nak)/sizeof(melody_nak[0])); }
|
||||||
|
void playMelodyAlarm()
|
||||||
|
{ playMelody(melody_alarm, noteDurations_alarm, 1, sizeof(melody_alarm)/sizeof(melody_alarm[0])); }
|
||||||
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
@ -82,6 +88,8 @@ void playMelodyAck()
|
||||||
{}
|
{}
|
||||||
void playMelodyNak()
|
void playMelodyNak()
|
||||||
{}
|
{}
|
||||||
|
void playMelodyAlarm()
|
||||||
|
{}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -163,6 +171,7 @@ void readSerial()
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case 's': statusState = data - '0'; statusStateOverride = 1; break;
|
case 's': statusState = data - '0'; statusStateOverride = 1; break;
|
||||||
case 'v': videoState = data - '0'; videoStateOverride = 1; break;
|
case 'v': videoState = data - '0'; videoStateOverride = 1; break;
|
||||||
|
case 'a': playMelodyAlarm(); /* data ignored */ break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue