PX4 Firmware
PX4 Autopilot Software http://px4.io
drv_tone_alarm.h
Go to the documentation of this file.
1
/****************************************************************************
2
*
3
* Copyright (C) 2012 PX4 Development Team. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in
13
* the documentation and/or other materials provided with the
14
* distribution.
15
* 3. Neither the name PX4 nor the names of its contributors may be
16
* used to endorse or promote products derived from this software
17
* without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
25
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
26
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
* POSSIBILITY OF SUCH DAMAGE.
31
*
32
****************************************************************************/
33
34
/**
35
* @file drv_tone_alarm.h
36
*
37
* Driver for the PX4 audio alarm port, /dev/tone_alarm.
38
*
39
* The tone_alarm driver supports a set of predefined "alarm"
40
* patterns and one user-supplied pattern. Patterns are ordered by
41
* priority, with a higher-priority pattern interrupting any
42
* lower-priority pattern that might be playing.
43
*
44
* The TONE_SET_ALARM ioctl can be used to select a predefined
45
* alarm pattern, from 1 - <TBD>. Selecting pattern zero silences
46
* the alarm.
47
*
48
* To supply a custom pattern, write an array of 1 - <TBD> tone_note
49
* structures to /dev/tone_alarm. The custom pattern has a priority
50
* of zero.
51
*
52
* Patterns will normally play once and then silence (if a pattern
53
* was overridden it will not resume). A pattern may be made to
54
* repeat by inserting a note with the duration set to
55
* DURATION_REPEAT. This pattern will loop until either a
56
* higher-priority pattern is started or pattern zero is requested
57
* via the ioctl.
58
*/
59
60
#pragma once
61
62
#include <
lib/tunes/tune_definition.h
>
63
#include <
uORB/topics/tune_control.h
>
64
65
#define CBRK_BUZZER_KEY 782097
66
#define CBRK_OFF 0
67
#define CBRK_ON 1
68
#define CBRK_UNINIT 2
69
70
#define _TONE_ALARM_BASE 0x7400
71
#define TONE_SET_ALARM _PX4_IOC(_TONE_ALARM_BASE, 1)
72
#define TONE_ALARM0_DEVICE_PATH "/dev/tone_alarm0"
73
74
// TODO: remove this once the tone_alarm driver is changed to the new tunelib
75
enum
{
76
TONE_STOP_TUNE
= 0,
77
TONE_STARTUP_TUNE
,
78
TONE_ERROR_TUNE
,
79
TONE_NOTIFY_POSITIVE_TUNE
,
80
TONE_NOTIFY_NEUTRAL_TUNE
,
81
TONE_NOTIFY_NEGATIVE_TUNE
,
82
TONE_ARMING_WARNING_TUNE
,
83
TONE_BATTERY_WARNING_SLOW_TUNE
,
84
TONE_BATTERY_WARNING_FAST_TUNE
,
85
TONE_GPS_WARNING_TUNE
,
86
TONE_ARMING_FAILURE_TUNE
,
87
TONE_PARACHUTE_RELEASE_TUNE
,
88
TONE_EKF_WARNING_TUNE
,
89
TONE_BARO_WARNING_TUNE
,
90
TONE_SINGLE_BEEP_TUNE
,
91
TONE_HOME_SET
,
92
TONE_NUMBER_OF_TUNES
93
};
94
95
namespace
ToneAlarmInterface
96
{
97
98
/**
99
* @brief Activates/configures the hardware registers.
100
*/
101
void
init
();
102
103
/**
104
* @brief Starts playing the note.
105
*/
106
void
start_note
(
unsigned
frequency);
107
108
/**
109
* @brief Stops playing the current note and makes the player 'safe'.
110
*/
111
void
stop_note
();
112
113
}
// ToneAlarmInterface
TONE_BATTERY_WARNING_SLOW_TUNE
Definition:
drv_tone_alarm.h:83
TONE_NOTIFY_NEGATIVE_TUNE
Definition:
drv_tone_alarm.h:81
ToneAlarmInterface::stop_note
void stop_note()
Stops playing the current note and makes the player 'safe'.
TONE_BATTERY_WARNING_FAST_TUNE
Definition:
drv_tone_alarm.h:84
TONE_ERROR_TUNE
Definition:
drv_tone_alarm.h:78
tune_control.h
tune_definition.h
TONE_NOTIFY_POSITIVE_TUNE
Definition:
drv_tone_alarm.h:79
ToneAlarmInterface::init
void init()
Activates/configures the hardware registers.
ToneAlarmInterface::start_note
void start_note(unsigned frequency)
Starts playing the note.
TONE_ARMING_FAILURE_TUNE
Definition:
drv_tone_alarm.h:86
TONE_BARO_WARNING_TUNE
Definition:
drv_tone_alarm.h:89
ToneAlarmInterface
Definition:
drv_tone_alarm.h:95
TONE_ARMING_WARNING_TUNE
Definition:
drv_tone_alarm.h:82
TONE_STARTUP_TUNE
Definition:
drv_tone_alarm.h:77
TONE_GPS_WARNING_TUNE
Definition:
drv_tone_alarm.h:85
TONE_SINGLE_BEEP_TUNE
Definition:
drv_tone_alarm.h:90
TONE_HOME_SET
Definition:
drv_tone_alarm.h:91
TONE_PARACHUTE_RELEASE_TUNE
Definition:
drv_tone_alarm.h:87
TONE_NUMBER_OF_TUNES
Definition:
drv_tone_alarm.h:92
TONE_STOP_TUNE
Definition:
drv_tone_alarm.h:76
TONE_NOTIFY_NEUTRAL_TUNE
Definition:
drv_tone_alarm.h:80
TONE_EKF_WARNING_TUNE
Definition:
drv_tone_alarm.h:88
src
drivers
drv_tone_alarm.h
Generated by
1.8.13