Merge pull request #24 from Mason10198/develop

Develop
pull/34/head v0.2.3
Mason10198 3 years ago committed by GitHub
commit 654aad90e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -30,6 +30,56 @@ SkywarnPlus is a sophisticated software solution that works hand-in-hand with yo
Whether you wish to auto-link to a Skywarn net during severe weather, program your node to control an external device like a siren during a tornado warning, or simply want to stay updated on changing weather conditions, SkywarnPlus offers a comprehensive, efficient, and customizable solution for your weather alert needs.
# Comprehensive Information
SkywarnPlus supports all 128 alert types included in the [NWS v1.2 API](https://www.weather.gov/documentation/services-web-api).
| | | |
| ---------------------------------- | -------------------------------------- | --------------------------------------- |
| 911 Telephone Outage Emergency | Administrative Message | Air Quality Alert |
| Air Stagnation Advisory | Arroyo And Small Stream Flood Advisory | Ashfall Advisory |
| Ashfall Warning | Avalanche Advisory | Avalanche Warning |
| Avalanche Watch | Beach Hazards Statement | Blizzard Warning |
| Blizzard Watch | Blowing Dust Advisory | Blowing Dust Warning |
| Brisk Wind Advisory | Child Abduction Emergency | Civil Danger Warning |
| Civil Emergency Message | Coastal Flood Advisory | Coastal Flood Statement |
| Coastal Flood Warning | Coastal Flood Watch | Dense Fog Advisory |
| Dense Smoke Advisory | Dust Advisory | Dust Storm Warning |
| Earthquake Warning | Evacuation - Immediate | Excessive Heat Warning |
| Excessive Heat Watch | Extreme Cold Warning | Extreme Cold Watch |
| Extreme Fire Danger | Extreme Wind Warning | Fire Warning |
| Fire Weather Watch | Flash Flood Statement | Flash Flood Warning |
| Flash Flood Watch | Flood Advisory | Flood Statement |
| Flood Warning | Flood Watch | Freeze Warning |
| Freeze Watch | Freezing Fog Advisory | Freezing Rain Advisory |
| Freezing Spray Advisory | Frost Advisory | Gale Warning |
| Gale Watch | Hard Freeze Warning | Hard Freeze Watch |
| Hazardous Materials Warning | Hazardous Seas Warning | Hazardous Seas Watch |
| Hazardous Weather Outlook | Heat Advisory | Heavy Freezing Spray Warning |
| Heavy Freezing Spray Watch | High Surf Advisory | High Surf Warning |
| High Wind Warning | High Wind Watch | Hurricane Force Wind Warning |
| Hurricane Force Wind Watch | Hurricane Local Statement | Hurricane Warning |
| Hurricane Watch | Hydrologic Advisory | Hydrologic Outlook |
| Ice Storm Warning | Lake Effect Snow Advisory | Lake Effect Snow Warning |
| Lake Effect Snow Watch | Lake Wind Advisory | Lakeshore Flood Advisory |
| Lakeshore Flood Statement | Lakeshore Flood Warning | Lakeshore Flood Watch |
| Law Enforcement Warning | Local Area Emergency | Low Water Advisory |
| Marine Weather Statement | Nuclear Power Plant Warning | Radiological Hazard Warning |
| Red Flag Warning | Rip Current Statement | Severe Thunderstorm Warning |
| Severe Thunderstorm Watch | Severe Weather Statement | Shelter In Place Warning |
| Short Term Forecast | Small Craft Advisory | Small Craft Advisory For Hazardous Seas |
| Small Craft Advisory For Rough Bar | Small Craft Advisory For Winds | Small Stream Flood Advisory |
| Snow Squall Warning | Special Marine Warning | Special Weather Statement |
| Storm Surge Warning | Storm Surge Watch | Storm Warning |
| Storm Watch | Test | Tornado Warning |
| Tornado Watch | Tropical Depression Local Statement | Tropical Storm Local Statement |
| Tropical Storm Warning | Tropical Storm Watch | Tsunami Advisory |
| Tsunami Warning | Tsunami Watch | Typhoon Local Statement |
| Typhoon Warning | Typhoon Watch | Urban And Small Stream Flood Advisory |
| Volcano Warning | Wind Advisory | Wind Chill Advisory |
| Wind Chill Warning | Wind Chill Watch | Winter Storm Warning |
| Winter Storm Watch | Winter Weather Advisory |
# Installation
SkywarnPlus is recommended to be installed at the `/usr/local/bin/SkywarnPlus` location on Debian (AllStarLink) and Arch (HAMVOIP) machines.
@ -46,7 +96,7 @@ Follow the steps below to install:
apt update
apt upgrade
apt install unzip python3 python3-pip ffmpeg
pip3 install pyyaml requests python-dateutil pydub
pip3 install ruamel.yaml requests python-dateutil pydub
```
**Arch (HAMVOIP)**
@ -58,6 +108,7 @@ Follow the steps below to install:
wget https://bootstrap.pypa.io/pip/3.5/get-pip.py
python get-pip.py
pip install pyyaml requests python-dateutil pydub
pip install ruamel.yaml==0.15.100
```
2. **Download SkywarnPlus**
@ -77,8 +128,7 @@ Follow the steps below to install:
```bash
cd SkywarnPlus
chmod +x SkywarnPlus.py
chmod +x SkyControl.py
chmod +x *.py
```
4. **Edit Configuration**
@ -124,7 +174,7 @@ SkywarnPlus can automatically create, manage, and remove a tailmessage whenever
```ini
tailmessagetime = 600000
tailsquashedtime = 30000
tailmessagelist = /usr/local/bin/SkywarnPlus/SOUNDS/wx-tail
tailmessagelist = /tmp/SkywarnPlus/wx-tail
```
## Courtesy Tones
@ -143,7 +193,9 @@ remotetx = /usr/local/bin/SkywarnPlus/SOUNDS/TONES/CT1
```
## CW / Voice IDs
SkywarnPlus can automatically change the node ID whenever certain weather alerts are active. The configuration for this is based on your `rpt.conf` file setup. Here's an example:
SkywarnPlus can automatically change the node ID whenever certain weather alerts are active. This requires creating your own audio files; one for the `NORMAL` ID, and one for the `WX` ID. The configuration for this is based on your `rpt.conf` file setup. Here's an example:
```ini
[NODENUMBER]
idrecording = /usr/local/bin/SkywarnPlus/SOUNDS/ID/RPTID
@ -158,7 +210,7 @@ SkywarnPlus can use the free Pushover API to send WX alert notifications and deb
3. Scroll down and create an Application/API key for your node
4. Add UserKey & API Key to `config.yaml`
# Control Script
# SkyControl
SkywarnPlus comes with a powerful control script (`SkyControl.py`) that can be used to enable or disable certain SkywarnPlus functions via shell, without manually editing `config.yaml`. This script is particularly useful when you want to map DTMF control codes to these functions. An added advantage is that the script provides spoken feedback upon execution, making it even more suitable for DTMF control.
@ -213,16 +265,17 @@ Upon the successful execution of a control command, the `SkyControl.py` script w
You can map the `SkyControl.py` script to DTMF commands in the `rpt.conf` file of your node. Here is an example of how to do this:
```bash
801 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py enable toggle ; Toggles SkywarnPlus
802 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py sayalert toggle ; Toggles SayAlert
803 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py sayallclear toggle ; Toggles SayAllClear
804 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py tailmessage toggle ; Toggles TailMessage
805 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py courtesytone toggle ; Toggles CourtesyTone
806 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py alertscript toggle ; Toggles AlertScript
807 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py idchange toggle ; Toggles IDChange
808 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py changect normal ; Forces CT to "normal" mode
809 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py changeid normal ; Forces ID to "normal" mode
```ini
; SkyControl DTMF Commands
831 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py enable toggle ; Toggles SkywarnPlus
832 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py sayalert toggle ; Toggles SayAlert
833 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py sayallclear toggle ; Toggles SayAllClear
834 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py tailmessage toggle ; Toggles TailMessage
835 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py courtesytone toggle ; Toggles CourtesyTone
836 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py alertscript toggle ; Toggles AlertScript
837 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py idchange toggle ; Toggles IDChange
838 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py changect normal ; Forces CT to "normal" mode
839 = cmd,/usr/local/bin/SkywarnPlus/SkyControl.py changeid normal ; Forces ID to "normal" mode
```
With this setup, you can control SkywarnPlus' functionality using DTMF commands.
@ -241,24 +294,78 @@ Here are examples of how to map alerts to DTMF commands or bash scripts:
```yaml
AlertScript:
Enable: true
# Completely enable/disable AlertScript
Enable: false
Mappings:
# Define the mapping of alerts to either DTMF commands or bash scripts here.
# Examples:
#
# This entry will execute the bash command 'asterisk -rx "rpt fun 1999 *123*456*789"'
# when the alerts "Tornado Warning" AND "Tornado Watch" are detected.
#
- Type: DTMF
Nodes:
- 1999
Commands:
- "*123*456*789"
Triggers:
- Tornado Warning
- Tornado Watch
Match: ALL
#
# This entry will execute the bash command '/home/repeater/testscript.sh'
# and the bash command '/home/repeater/saytime.sh' when an alert whose
# title ends with "Statement" is detected.
#
- Type: BASH
Commands:
- "/home/repeater/testscript.sh"
- "/home/repeater/saytime.sh"
Triggers:
- "*Statement"
#
# This entry will execute the bash command 'asterisk -rx "rpt fun 1998 *123*456*789"'
# and the bash command 'asterisk -rx "rpt fun 1999 *123*456*789"' when an alert
# titled "Tornado Warning" OR "Tornado Watch" is detected.
#
- Type: DTMF
Nodes:
- <NODE_NUMBERS>
- 1998
- 1999
Commands:
- '<DTMF_COMMAND>'
- "*123*456*789"
Triggers:
- <ALERTS>
Match: ALL # or ANY
- Tornado Warning
- Tornado Watch
#
# This entry will execute the bash command 'asterisk -rx "rpt fun 1999 *123*456*789"'
# and the bash command 'asterisk -rx "rpt fun 1999 *987*654*321"'
# when an alert titled "Tornado Warning" OR "Tornado Watch" is detected.
#
- Type: DTMF
Nodes:
- 1999
Commands:
- "*123*456*789"
- "*987*654*321"
Triggers:
- Tornado Warning
- Tornado Watch
Match: ANY
#
# This is an example entry that will automatically execute SkyDescribe and
# announce the full details of a Tornado Warning when it is detected.
#
- Type: BASH
Commands:
- '<BASH_COMMAND>'
- '/usr/local/bin/SkywarnPlus/SkyDescribe.py "Tornado Warning"'
Triggers:
- <ALERTS>
- Tornado Warning
```
In the examples above, `<NODE_NUMBERS>` are the nodes where you want the DTMF command to be dispatched, `<DTMF_COMMAND>` is the command to be executed, and `<ALERTS>` are the alerts to trigger this command. Likewise, for bash commands, `<BASH_COMMAND>` is the script to be executed and `<ALERTS>` are the alerts to trigger this script. Note that wildcards (`*`) can be used in `<ALERTS>` for broader matches.
## Matching
The `Match:` parameter tells `AlertScript` how to handle the triggers. If `Match: ANY`, then only 1 of the triggers needs to be matched for the command(s) to execute. If `Match: ALL`, then all of the triggers must be matched for the command(s) to execute. If `Match:` is not defined, then `ANY` is used by default.
## The Power of YOU
@ -268,6 +375,75 @@ Fancy activating a siren when a tornado warning is received? You can do that. Wa
In essence, `AlertScript` unleashes a world of customization possibilities, empowering you to add new capabilities to SkywarnPlus, create your own extensions, and modify your setup to align with your specific requirements and preferences. By giving you the authority to dictate how your system should react to various weather alerts, `AlertScript` makes SkywarnPlus a truly powerful tool for managing weather alerts on your node.
# SkyDescribe
`SkyDescribe` is a powerful and flexible tool that works in tandem with SkywarnPlus. It enables the system to provide a spoken detailed description of weather alerts, adding depth and clarity to the basic information broadcasted by default.
The `SkyDescribe.py` script works by fetching a specific alert from the stored data (maintained by SkywarnPlus) based on the title or index provided. The script then converts the description to audio using a free text-to-speech service and broadcasts it using Asterisk on the defined nodes.
## Usage
To use `SkyDescribe.py`, you simply execute the script with the title or index of the alert you want to be described. The index of the alert is the place it holds in the alert announcement or tailmessage (depending on blocking sonfiguration).
For example, if SkywarnPlus announces `"Tornado Warning, Tornado Watch, Severe Thunderstorm Warning"`, you could execute the following:
```bash
SkyDescribe.py 1 # Describe the 1st alert (Tornado Warning)
SkyDescribe.py 2 # Describe the 2nd alert (Tornado Watch)
SkyDescribe.py 3 # Describe the 3rd alert (Severe Thunderstorm Warning)
```
or, you can use the title of the alert instead of the index:
```bash
SkyDescribe.py "Tornado Warning"
SkyDescribe.py "Tornado Watch"
SkyDescribe.py "Severe Thunderstorm Warning"
```
## Integration with AlertScript
`SkyDescribe.py` can be seamlessly integrated with `AlertScript`, enabling automatic detailed description announcements for specific alerts. This can be accomplished by mapping the alerts to a bash command that executes `SkyDescribe.py` with the alert title as a parameter.
Here's an example of how to achieve this in the `config.yaml` file:
```yaml
AlertScript:
Enable: true
Mappings:
# This is an example entry that will automatically execute SkyDescribe and
# announce the full details of a Tornado Warning when it is detected.
- Type: BASH
Commands:
- "echo Tornado Warning detected!"
- '/usr/local/bin/SkywarnPlus/SkyDescribe.py "Tornado Warning"'
Triggers:
- Tornado Warning
```
## Mapping to DTMF commands
For added flexibility, `SkyDescribe.py` can also be linked to DTMF commands, allowing alert descriptions to be requested over-the-air.
```ini
; SkyDescribe DTMF Commands
841 = cmd,/usr/local/bin/SkywarnPlus/SkyDescribe.py 1 ; SkyDescribe the 1st alert
842 = cmd,/usr/local/bin/SkywarnPlus/SkyDescribe.py 2 ; SkyDescribe the 2nd alert
843 = cmd,/usr/local/bin/SkywarnPlus/SkyDescribe.py 3 ; SkyDescribe the 3rd alert
844 = cmd,/usr/local/bin/SkywarnPlus/SkyDescribe.py 4 ; SkyDescribe the 4th alert
845 = cmd,/usr/local/bin/SkywarnPlus/SkyDescribe.py 5 ; SkyDescribe the 5th alert
846 = cmd,/usr/local/bin/SkywarnPlus/SkyDescribe.py 6 ; SkyDescribe the 6th alert
847 = cmd,/usr/local/bin/SkywarnPlus/SkyDescribe.py 7 ; SkyDescribe the 7th alert
848 = cmd,/usr/local/bin/SkywarnPlus/SkyDescribe.py 8 ; SkyDescribe the 8th alert
849 = cmd,/usr/local/bin/SkywarnPlus/SkyDescribe.py 9 ; SkyDescribe the 9th alert
```
## **NOTE:**
If you have SkywarnPlus set up to monitor multiple counties, it will, by design, only store **ONE** instance of each alert type in order to prevent announcing duplicate messages. Because of this, if SkywarnPlus checks 3 different counties and finds a `"Tornado Warning"` in each one, only the first description will be saved. Thus, executing `SkyControl.py "Tornado Warning"` will broadcast the description of the `"Tornado Warning"` for the first county **ONLY**.
In _most_ cases, any multiple counties that SkywarnPlus is set up to monitor will be adjacent to one another, and any duplicate alerts would actually be the **_same_** alert with the **_same_** description, so this wouldn't matter.
# Customizing the Audio Files
SkywarnPlus comes with a library of audio files that can be replaced with any 8kHz mono PCM16 WAV files you want. These are found in the `SOUNDS/` directory by default, along with `DICTIONARY.txt` which explains audio file assignments.

@ -6,88 +6,152 @@ files correspond to which weather events.
This is useful for those who may want to
replace the audio files with their own.
----------------------------------------
SWP01.wav: Hurricane Force Wind Warning
SWP02.wav: Severe Thunderstorm Warning
SWP03.wav: Severe Thunderstorm Watch
SWP04.wav: Winter Weather Advisory
SWP05.wav: Tropical Storm Warning
SWP06.wav: Special Marine Warning
SWP07.wav: Freezing Rain Advisory
SWP08.wav: Special Weather Statement
SWP09.wav: Excessive Heat Warning
SWP10.wav: Coastal Flood Advisory
SWP11.wav: Coastal Flood Warning
SWP12.wav: Winter Storm Warning
SWP13.wav: Tropical Storm Watch
SWP14.wav: Thunderstorm Warning
SWP15.wav: Small Craft Advisory
SWP16.wav: Extreme Wind Warning
SWP17.wav: Excessive Heat Watch
SWP18.wav: Wind Chill Advisory
SWP19.wav: Storm Surge Warning
SWP20.wav: River Flood Warning
SWP21.wav: Flash Flood Warning
SWP22.wav: Coastal Flood Watch
SWP23.wav: Winter Storm Watch
SWP24.wav: Wind Chill Warning
SWP25.wav: Thunderstorm Watch
SWP26.wav: Fire Weather Watch
SWP27.wav: Dense Fog Advisory
SWP28.wav: Storm Surge Watch
SWP29.wav: River Flood Watch
SWP30.wav: Ice Storm Warning
SWP31.wav: Hurricane Warning
SWP32.wav: High Wind Warning
SWP33.wav: Flash Flood Watch
SWP34.wav: Red Flag Warning
SWP35.wav: Blizzard Warning
SWP36.wav: Tornado Warning
SWP37.wav: Hurricane Watch
SWP38.wav: High Wind Watch
SWP39.wav: Frost Advisory
SWP40.wav: Freeze Warning
SWP41.wav: Wind Advisory
SWP42.wav: Tornado Watch
SWP43.wav: Storm Warning
SWP44.wav: Heat Advisory
SWP45.wav: Flood Warning
SWP46.wav: Gale Warning
SWP47.wav: Freeze Watch
SWP48.wav: Flood Watch
SWP49.wav: Flood Advisory
SWP50.wav: Hurricane Local Statement
SWP51.wav: Beach Hazards Statement
SWP52.wav: Air Quality Alert
SWP53.wav: Severe Weather Statement
SWP54.wav: Winter Storm Advisory
SWP55.wav: Tropical Storm Advisory
SWP56.wav: Blizzard Watch
SWP57.wav: Dust Storm Warning
SWP58.wav: High Surf Advisory
SWP59.wav: Heat Watch
SWP60.wav: Freeze Watch
SWP61.wav: Dense Smoke Advisory
SWP62.wav: Avalanche Warning
SWP77.wav: ID Set To Normal
SWP78.wav: ID Set To Weather
SWP79.wav: Courtesy Tones Set To Normal
SWP80.wav: Courtesy Tones Set To Weather
SWP81.wav: AlertScript Enabled
SWP82.wav: AlertScript Disabled
SWP83.wav: IDChange Enabled
SWP84.wav: IDChange Disabled
SWP85.wav: SkywarnPlus Enabled
SWP86.wav: SkywarnPlus Disabled
SWP87.wav: SayAlert Enabled
SWP88.wav: SayAlert Disabled
SWP89.wav: SayAllClear Enabled
SWP90.wav: SayAllClear Disabled
SWP91.wav: Tailmessage Enabled
SWP92.wav: Tailmessage Disabled
SWP93.wav: CourtesyTone Enabled
SWP94.wav: CourtesyTone Disabled
SWP95.wav: Tic Sound Effect
SWP96.wav: All Clear Message
SWP97.wav: Updated Weather Information Message
SWP98.wav: Error Sound Effect
SWP99.wav: Word Space Silence
SWP_1.wav: 911 Telephone Outage Emergency
SWP_2.wav: Administrative Message
SWP_3.wav: Air Quality Alert
SWP_4.wav: Air Stagnation Advisory
SWP_5.wav: Arroyo And Small Stream Flood Advisory
SWP_6.wav: Ashfall Advisory
SWP_7.wav: Ashfall Warning
SWP_8.wav: Avalanche Advisory
SWP_9.wav: Avalanche Warning
SWP_10.wav: Avalanche Watch
SWP_11.wav: Beach Hazards Statement
SWP_12.wav: Blizzard Warning
SWP_13.wav: Blizzard Watch
SWP_14.wav: Blowing Dust Advisory
SWP_15.wav: Blowing Dust Warning
SWP_16.wav: Brisk Wind Advisory
SWP_17.wav: Child Abduction Emergency
SWP_18.wav: Civil Danger Warning
SWP_19.wav: Civil Emergency Message
SWP_20.wav: Coastal Flood Advisory
SWP_21.wav: Coastal Flood Statement
SWP_22.wav: Coastal Flood Warning
SWP_23.wav: Coastal Flood Watch
SWP_24.wav: Dense Fog Advisory
SWP_25.wav: Dense Smoke Advisory
SWP_26.wav: Dust Advisory
SWP_27.wav: Dust Storm Warning
SWP_28.wav: Earthquake Warning
SWP_29.wav: Evacuation - Immediate
SWP_30.wav: Excessive Heat Warning
SWP_31.wav: Excessive Heat Watch
SWP_32.wav: Extreme Cold Warning
SWP_33.wav: Extreme Cold Watch
SWP_34.wav: Extreme Fire Danger
SWP_35.wav: Extreme Wind Warning
SWP_36.wav: Fire Warning
SWP_37.wav: Fire Weather Watch
SWP_38.wav: Flash Flood Statement
SWP_39.wav: Flash Flood Warning
SWP_40.wav: Flash Flood Watch
SWP_41.wav: Flood Advisory
SWP_42.wav: Flood Statement
SWP_43.wav: Flood Warning
SWP_44.wav: Flood Watch
SWP_45.wav: Freeze Warning
SWP_46.wav: Freeze Watch
SWP_47.wav: Freezing Fog Advisory
SWP_48.wav: Freezing Rain Advisory
SWP_49.wav: Freezing Spray Advisory
SWP_50.wav: Frost Advisory
SWP_51.wav: Gale Warning
SWP_52.wav: Gale Watch
SWP_53.wav: Hard Freeze Warning
SWP_54.wav: Hard Freeze Watch
SWP_55.wav: Hazardous Materials Warning
SWP_56.wav: Hazardous Seas Warning
SWP_57.wav: Hazardous Seas Watch
SWP_58.wav: Hazardous Weather Outlook
SWP_59.wav: Heat Advisory
SWP_60.wav: Heavy Freezing Spray Warning
SWP_61.wav: Heavy Freezing Spray Watch
SWP_62.wav: High Surf Advisory
SWP_63.wav: High Surf Warning
SWP_64.wav: High Wind Warning
SWP_65.wav: High Wind Watch
SWP_66.wav: Hurricane Force Wind Warning
SWP_67.wav: Hurricane Force Wind Watch
SWP_68.wav: Hurricane Local Statement
SWP_69.wav: Hurricane Warning
SWP_70.wav: Hurricane Watch
SWP_71.wav: Hydrologic Advisory
SWP_72.wav: Hydrologic Outlook
SWP_73.wav: Ice Storm Warning
SWP_74.wav: Lake Effect Snow Advisory
SWP_75.wav: Lake Effect Snow Warning
SWP_76.wav: Lake Effect Snow Watch
SWP_77.wav: Lake Wind Advisory
SWP_78.wav: Lakeshore Flood Advisory
SWP_79.wav: Lakeshore Flood Statement
SWP_80.wav: Lakeshore Flood Warning
SWP_81.wav: Lakeshore Flood Watch
SWP_82.wav: Law Enforcement Warning
SWP_83.wav: Local Area Emergency
SWP_84.wav: Low Water Advisory
SWP_85.wav: Marine Weather Statement
SWP_86.wav: Nuclear Power Plant Warning
SWP_87.wav: Radiological Hazard Warning
SWP_88.wav: Red Flag Warning
SWP_89.wav: Rip Current Statement
SWP_90.wav: Severe Thunderstorm Warning
SWP_91.wav: Severe Thunderstorm Watch
SWP_92.wav: Severe Weather Statement
SWP_93.wav: Shelter In Place Warning
SWP_94.wav: Short Term Forecast
SWP_95.wav: Small Craft Advisory
SWP_96.wav: Small Craft Advisory For Hazardous Seas
SWP_97.wav: Small Craft Advisory For Rough Bar
SWP_98.wav: Small Craft Advisory For Winds
SWP_99.wav: Small Stream Flood Advisory
SWP_100.wav: Snow Squall Warning
SWP_101.wav: Special Marine Warning
SWP_102.wav: Special Weather Statement
SWP_103.wav: Storm Surge Warning
SWP_104.wav: Storm Surge Watch
SWP_105.wav: Storm Warning
SWP_106.wav: Storm Watch
SWP_107.wav: Test
SWP_108.wav: Tornado Warning
SWP_109.wav: Tornado Watch
SWP_110.wav: Tropical Depression Local Statement
SWP_111.wav: Tropical Storm Local Statement
SWP_112.wav: Tropical Storm Warning
SWP_113.wav: Tropical Storm Watch
SWP_114.wav: Tsunami Advisory
SWP_115.wav: Tsunami Warning
SWP_116.wav: Tsunami Watch
SWP_117.wav: Typhoon Local Statement
SWP_118.wav: Typhoon Warning
SWP_119.wav: Typhoon Watch
SWP_120.wav: Urban And Small Stream Flood Advisory
SWP_121.wav: Volcano Warning
SWP_122.wav: Wind Advisory
SWP_123.wav: Wind Chill Advisory
SWP_124.wav: Wind Chill Warning
SWP_125.wav: Wind Chill Watch
SWP_126.wav: Winter Storm Warning
SWP_127.wav: Winter Storm Watch
SWP_128.wav: Winter Weather Advisory
SWP_129.wav: ID Set To Normal
SWP_130.wav: ID Set To Weather
SWP_131.wav: Courtesy Tones Set To Normal
SWP_132.wav: Courtesy Tones Set To Weather
SWP_133.wav: AlertScript Enabled
SWP_134.wav: AlertScript Disabled
SWP_135.wav: IDChange Enabled
SWP_136.wav: IDChange Disabled
SWP_137.wav: SkywarnPlus Enabled
SWP_138.wav: SkywarnPlus Disabled
SWP_139.wav: SayAlert Enabled
SWP_140.wav: SayAlert Disabled
SWP_141.wav: SayAllClear Enabled
SWP_142.wav: SayAllClear Disabled
SWP_143.wav: Tailmessage Enabled
SWP_144.wav: Tailmessage Disabled
SWP_145.wav: CourtesyTone Enabled
SWP_146.wav: CourtesyTone Disabled
SWP_147.wav: Tic Sound Effect
SWP_148.wav: All Clear Message
SWP_149.wav: Updated Weather Information Message

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save

Powered by TurnKey Linux.