########### ALL CHANGES BELOW THROUGH 4/4/06 CODED BY EVAN BOOKBINDER AND/OR BRIAN WALAWENDER ##################

Version OB7-2.6 (V2.5 has been superceded for those who are curious)
- Word/phrase replacement will be effective even if original phrase extends multiple lines in product.
- WordFile_SPN.txt will be invoked if Spanish product (CCCNNNSPN) is detected.
- Spanish MND lines properly regexp decoded (thanks Sra. Pinhiero and Sra. Smith for HS Spanish lessons that finally paid off!)
- Corrected bug that caused UPG/CAN cancellation messages to not be generated.
- Modified UGC_VTEC decoder to allow partial FIPS codes in the format of XX1234 where third character is a number instead of typical C or Z UGC.
- Fixed bug that caused UGC_VTEC decoder to miss intermediate lines when UGC data spans more than 3 lines. This bug was relegated to very large watch boxes where the state-segmented initial WOU could span more than 3 lines.
- Added ability to override the effective start time of a broadcast (to be used in conjunction with periodicity)
- Added CAFE core county/zone capability, allowing offices to assign one FIPS and one ZONE code per transmitter. The core county/zone option limits NWRWAVES to processing, for each transmitter, only those product UGC segments that contain the core FIPS or ZONE code.
- Overview product will now be sent as a separate product using the PIL CCCOVRXXX where CCC = issuing office and XXX = legacy product PIL (e.g. EAXOVRWSW). Congifuration settings for an overview can be found under OVR in the product configuration.
- Added additional marine enhancement so that WFOs can schedule which sections of the GLF product are to be broadcast on each transmitter. (No changes to existing config file necessary).
- Modified code structure to process multiple VTEC lines in a given segment. If multiple VTEC lines are detected, the following rules govern message generated:
	1.) A VTEC line that is a cancellation or upgrade is automatically generated as such with a 10 minute expiration time.
	2.) A VTEC line that contains a tone alertable product is automatically generated
	3.) Otherwise, a priority ranking scheme for all VTEC hazards is used to determine which of the remaining hazards is broadcast.
- Fixed a bug where if two zones had the same name, only the first UGC was added to the transmitter config file.
- Fixed a bug which caused silence period to fail if silence period crossed midnight LST.
- YES/NO Setup GUI config options are greyed out for repeat headlines and summary message generation for non-VTEC products.
- Products generated in test mode will now use a VTEC_Summary.TEST file to keep hazard tracking separate.
- Generic message type assembly option added to product configuration. Last 3 characters of CRS PIL will be the issuing WFO instead of transmitter specific (1 message generated).
- Updates to UGClookup.table - changes can be found UGClookup_changes.txt
- Updates for SJU to use AST4 instead of VST4
- Single Threaded Processing
- Changes for GUAM going to ChST
- OCONUS WCN "NEW" products will now be processed since SPC does not issue WOU Nproducts for them

  SETUP GUI CHANGES:
  1.) Install script and GUI modified to handle new core county/zone and effective time fields.
  2.) Per suggestion by AMA, GUI adjusted to align product configuration settings for easier setup.
  3.) Modified a few of the help pop-ups to better explain scenarios that were deemed confusing based on listserv traffic.
  4.) Removed 24 hour restriction on broadcast duration override.
  5.) VIP (Concatenated Voice) pull down replaced by VIP (Default)
  6.) Addition to handle transmitter specific GLF settings

DR's fixed in NWRWAVES release v2.6

16984 - products be given a "starting at" time feature.
* Request that products be given a "starting at" time feature.  For example, HWO is issued at 530 am, but an office wants it effective at 6 am.

16985 - BIS lock file problem - cron for summary message generation
* BIL: the "lock.lock" file created when NWRWAVES runs is not properly deleted upon completion of re-sending an NWRWAVES product.

16986 - Process partial county codes
* Re-write UGC Decoder to allow for the inclusion of partial county codes (instead of MOC095, allow MO1195, MO2295, etc.) to support partial county warnings. NWRWAVES will not take whole counties and convert to partial counties; rather, it will take local input that includes partial county codes.

16987 - Spanish MND Date/time line
* Add capability to decode Spanish MND date/time line for inbound AWIPS products that that end in SPN

16988 - Parse the overview section of a segmented product into a separate CRS product option
* Parse the overview section of a segmented product (if overview inclusion is set to "Yes") into a separate CRS product (OVR)

16989 - SWAPS - alternative ward replace files -NOT DONE, can be handled in current word replace file.
* Add new c-shell script (invoked via crontab) to update SUMMARY message in between calls to NWRWAVES for product formatting.

16990 - VTEC Decoder for multiple lines of VTEC
* Re-vamp VTEC Decoder to handle multiple lines of VTEC; use a prioritization ranking scheme to pick which one is used for product assembly, yet produce a product for any tone-alert hazard listed.

16991 - Invoke separate word replace file for SPN
* For inbound products that end in "SPN", invoke a separate WordFile.txt for Spanish messages.

16992 - Properly source time zone for browser on XT
* When the NWRWAVES Browser is started from the Monitoring Controller (and not the root menu) on an XT workstation, the time zone is improperly sourced as LST and not GMT.  This causes the "Expire Product" option using current time to post-date a product's expiration time.

16993 - Core County capability (one LAC per product)
* Create "Core County" logic for parsing of legacy products "ZFP", "NOW", etc.  Allow for processing for just one LAC per product.

16994 - fix word/replace capability if phrase continues on next line
* Word/phrase replacement does not work if the phrase extends to a new line

16995 - provide cancellation when UPG/CAN action codes are within a segment
* In a situation where UPG/CAN action codes are contained within a segment, software doesn't properly prepare a cancellation message

16996 - Improve GLF product handling to specify sections of lake
* With the GLF, additional customization is needed; ability to specify not only sections of the GLF but to also make assignment of these sections transmitter-specific.

16997 - If two zones have the same name, only the first UGC(z) was added to the transmitter config file
* If two zones have the same name, only the first UGC(z) was added to the transmitter config file

16998 - Install script needs to be modified to automate addition of core county/zone and effective time fields
* Install script needs to be modified to automate addition of core county/zone and effective time fields.

16999 - Config GUI improvements
* Various changes to the configuration GUIs per user feedback: GUI adjusted to align product configuration settings for easier setup; pop-ups augmented to better explain scenarios based on listserv feedback; removed 24 hour restriction on broadcast duration override; VIP (Concatenated Voice) replaced with just VIP (Default); addition of transmitter-specific GLF settings on the Marine tab; addition of browser settings GUI on the Summary/Misc. Settings tab.

17001 - Delays in processing warnings
* Pete Browning, EAX reports:  When a warning is issued  that affects multiple transmitters, NWRWAVES will product a message for each transmitter.  This was done to meet a requirement for transmitter specific messages.  However, these multiple messages when sent to CRS are processed by the VIP one at a time.  Processing the messages to create the voice wav files in  VIP takes about 20 seconds or more depending on length of message.  This accumulates delays in sending the warning to all transmitters.  If 3 transmitters are affected by the warning, the delay in sending the alter tones and warning information on the last transmitter can be more than a minute.

17064 - UGC Decoder Bug
* Info from Pete Browning:  UGC Decoder Bug - UGC decoder only processes 2 lines of UGC code in products.  Large watch products were issued during the tornado outbreak which included 3 or more lines of UGC code.  This bug results in not properly alerting all counties that were included in the watch.  The UGC decoder module in NWRWAVES will be updated to look for multiple lines of UGC codes.

17066 - Zero Byte File problem
* When the database trigger event occurs for a new product stored in the database, a copy of the product is provided to the trigger directory.  Occasionally (seen only with OB5 offices SLC and MFL), the product file is 0 byte length.  The result is that NWRWAVES does not process this file.

17104 - OB6: NWRWAVES UGClookup.table needs to be updated for the Indiana observance of DST.
* The UGClookup.table is used by NWRWAVES setup GUI to establish the set of counties/zones associated with each NWR transmitter. It is similarly used by the NWRWAVES processor to correlate decoded UGC line(s) with the appropriate English translation for those counties/zone as well as their inherent time zone for generation of summary messages and repeating headlines at the end of messages (used in warnings).  This file needs to be modified to account for daylight savings time observation in Indiana and also for the 8 counties that are switching from Eastern Time to Central Time.  This DR needs to be included in the upcoming NWRWAVES emergency release. (A duplicate DR will be generated for OB7.1)

####################################################################################################################################################

Version OB6-2.4 (released 11/4/05)

- Modified setup GUI and processing to allow sites to disable VTEC processing for routine marine products (CWF,NSH,OFF,GLF)
- Modified routine marine product handling (CWF,NSH,OFF,GLF) to remove convective and tropical cyclone watch/warning VTEC content. This is done to avoid a potential duplicate tone alerting with the WOU/WCN or TCV products. NWRWAVES will track any CWF/NSH segment with tropical or convective watch VTEC as an MA.F.
- Added post-processing module to cancelled and summary messages as well
- Added ESF to default product config file.
- Fixed minor bug in Setup GUI CountySet procedure to correct false detection of duplicate zone listings.
- Changed default expiration time for automatic cancelled/removed products from 2 to 10 minutes to prevent CRS from receiving an expired message.
- Modified NWRbrowser file naming convention to include issuing WFO so that locating products would be easier. Format is now CCCNNNXXX_* where CCC = issuing WFO, NNN is CRS product ID, XXX is transmitter mnemonic.

Version 2.3b (released 10/27/05)
- Fixed illegal MRD 000 usage in ROU (routine) VTEC products. An MRD other than 000 will be assigned when the VTEC ETN of 0000 is used.
- Added logging output for test products
- Added watch (ETN) number to broadcast messages and summary messages for convective watches
- Modified tracking/MRD code to handle the WCN exception. Since this product overlaps CWA borders and WCN issuance is not mandatory or routine, we must add code to keep track of all WCN continued counties in the tracking file/issued CON regardless of which WFO issued the WCN.  End result: any WCN that triggers NWRWAVES will still produce a transmitter-inclusive watch update product that lists all counties/parishes affected irregardless of CWA.
- Renamed CRS PIL for public tropical cyclone advisory (TCP) product to TC1-TC5 to handle to handle concurrent tropical systems.
- Added setup utility functionality to allow admin users to modify and delete Local Area Codes (LACs) in addition to adding them.
- Modified MND parser and post processing routine to handle new double time zone product format (i.e., "705 PM CDT / 605 PM MDT" within an AWIPS product).  Code support still remains for legacy () format of multiple time zones.
- New install/upgrade script (combined) that cleans up LOGS, DEBUG, INPUT, OUTPUT, BACKUP and SUMMARY directories (moves their contents back into the operational NWRWAVES directory so that scour scripts can clean them). This addresses excessive inode usage in previous versions.
- Updated NWRWAVES browser so that a check is performed on files in the 'pending' directory, so that the purge function only offers to purge expired products.
- Updated nwrwaves.csh and nwrwavestest.csh trigger scripts to report AWIPS PID of the product that caused NWRWAVES to crash.  This way, a CRS operator can take proactive steps to ensure that product gets onto CRS (be it checking the input AWIPS product for errors in VTEC or UGC lines, or manually recording/voicing the product on CRS).

Version 2.2b (released 9/6/05)

- Fixed bug in processing multi-segmented products where one or more segments contained an MND date/time line with multiple timezones.
- Fixed rare bug in MRD generation sequence where VTEC number ending in 09
  would cause a conflict with Tcl interpreter attempting to add octal.
- Fixed similar bug in UGC_VTEC decoder with 09 and September
- Modified code to allow numeric allowance in CRS issuance/follow-up PILs
- Modified code to keep marine zone segments in UGC (coastal) order versus alphabetic order.
- Added code to check/bail on 0 byte files in the QUEUE directory 
- Added code in the nwrwaves.csh/nwrwavestest.csh file to improve lockout capabilities in order to prevent multiple running instances
  of NWRWAVES. Multiple versions running was causing unpredictable product production behavior.
- Changed file naming convention for VTEC products stored in the OUTPUT
  directory.  A timestamp is appended to the file names to prevent the files
  from being overwritten by newer versions.

Version 0818B (2.1 Beta Final) Change From EAX,NWSH and PBZ Final DT&E

- Ability to uniquely select FIPS vs. zone areas
- QC of UGClookup table, with addition of missing Atlantic synopsis zones, Arkansas and Arizona zones
- Establish baseline default product configuration settings
- Unique filenaming convention for output
- Added ending punctuation to open ended one-line bullets from WarnGen/GHG for better audio on CRS.
- Added consistent Save Edits buttons to all tabs in setup GUI
- Fixed program crash if UGCs were not found in any lookup tables
- Added ability to generate local LAC codes via localUGClookup.table
- Increased number of backup versions of config files from one to two.
- Invoked lock file to prevent multiple instances of setup GUI

Version 0803B (2.1b) Changes (FROM NWSHQ AND CRH DT&E)

- Fixed problem with Routine Marine forecasts using a VTEC # of 0000 casuing software to fail
- Accounted for problems with incorrect MND Date/time groups (NCEP OPC) and extraneous double dollar signs (OKX)
- Added transmission option (CRS/pending) for summary message
- Added code to trim leading 0s from VTEC ETN number so that MRD calculations would not cause a failure due to Tcl/Octal problem.
- Added code to handle Independent Cities in summary message (known locations currently in Virginia, Baltimore MD and St. Louis MO)
- Upped min summary message threshold to 30.
- In the setup GUI, fixed summary message PIL "CCC" label to use local CCC instead of hardwired STL (to avoid confusion).
- Made changes to summary message generation code to handle independent cities
- Setup GUI saves existing files of config files as .bak (backups)
- Created INPUT directory to store incoming products. Purge set to 30 days.
- If no product configuration is found for a particular product, it will be processed but sent to Pending directory.
- Added setup GUI and code to handle differences between NHC and HPC Tropical Cyclone Products. Will allow ability to process either, and to strip tabular data from the HPC version.
- Added improved code to handle phone numbers within products for CRS broadcast. For example 1-888-123-4567 will become 1, 8 8 8, 1 2 3, 4 5 6 7
- Removed incorrect error logging for a non-VTEC product when a non-VTEC entry was correctly located in the product config file.
- Corrected default naming convention for transmitters to handle transmitter numbers >= 10. Will use NWx for 1-9 and Nxx for 10 and higher.
- Added flat file to handle allowable MRD Replace Usage for non-VTEC products.
- Replaced counties.ini and zones.ini with UGClookup.table to better handle zone overlap (fire weather) and marine related products
- Adjusted NWRWAVES code to use new lookup table
- Modified setup code to display active UGC codes when a given UGC listing is clicked in any of the listboxes.
- Made major changes to VTEC_Summary.txt file storage to maintain replaced products which have not yet expired. Although these products are no longer broadcasting on CRS, their MRD numbers are still in use until expiration and must be retained. Therefore, added an "ACTIVE" flag to prevent these lines from being utilized other than maintaining an "active" MRD set.
- Modified English time output to utilize timezone information present in UGCLookup.table file. As a result, if a product should contain counties/zones from multiple time zones, the time output contained in the repeating statement and in the summary messages will list all applicable time zones.


Version 0628A (2.0a) Changes:

- Corrected bug for not including supplemental data.
- Fixed bug in Setup GUI induced by adding similarly named marine zones.
- Fixed bug where software would not process products w/o UGC (no MRD required)
- Added support for a SUMMARY command line argument to nwrwaves.tcl to allow the NWRBrowser to force a manual re-run of the summary messages
- NWRWAVES now maintains a flat file containing the current file being processed, such that in case of hard failure, the offending file can be moved to the ERROR directory.
- nwrwaves.csh will now added entry to date stamped log file in /LOGS and issue a red banner message in case of hard program failure
- UGC_VTEC decoder had to be modified to handle 000000T0000Z event end time that is used ONLY in the TPC "TCV" product. Recommend that TPC instill valid times such that summary message can incorporate this information. Otherwise the hurricane/tropical storm watch/warning is open ended.
- Added setup GUI handling for HLS and GLF products. Attempted to make these as open ended as possible for future expansion/changes.
- Added an exit method such that if NWRWAVES encounters an alarmable product, but cannot find a valid UGC code it will not process. 

Version 0614A Changes:

- Added TCV decoder to generate generic messages similar to WCN.
- Added Marine tab to Setup GUI and implemented first step with HLS subtitle replacement. New file created marine_cfg.XXX
- Added MRD capability to non-VTEC products. Unique, but consistent MRD number is derived by converting the product
  PIN product code (e.g. NOW or SPS) to its Unicode character numbers. The 3 numbers are then multiplied by a 
  constant and summed to create an MRD number. 
- Modified code to handle transmitter specific MRD numbers to comply with CRS replacement issues.
- Fixed syntax in the instance that an MRD replaces multiple existing events (per the 0530A change).
- Corrected a few syntax errors in the product.cfg file (although it was good to see the Setup utility did not 
error on these).

Version 0530A Changes:

- Fixed bug in VTEC database management such that 1 VTEC string can in fact replace multiple lines the VTEC database
  (e.g. a single event with 2 segments (CON and EXA) would be combined into a single CON in the next statement
- Ability to set tone settings by product per VTEC action (NEW, CON, CAN, etc...)
- Addition of "non-routine" broadcast service areas with unique product specific settings to process/don't process and
  tone/interrupt.
- Default Expiration time can now also be used as a forced override to existing UGC expiration time
- Check for existence of a failed formatter (errorlog.txt file size > 0) and copy failed products and logs to ERROR directory.
- Check for "SPN" as last 3 characters of the AWIPS PIL and change CRS message format from T_ENG to T_SPA for Spanish broadcast.
- Fixed Tcl bug (workaround) to allow for more proper formatting of an existing overview section.

Version 0512A Changes:
- Fixed 'periodicity' bug
- Summary files are now stored with time stamps to TEST & DEBUG directories
- Fixed P-VTEC decoder in the /bin/UGC_VTEC_Decoder.tcl file to distinguish it from H-VTEC after recent changes
- Cleaned up product.cfg and added remaining products. File now differentiates between VTEC and legacy PILs (lack of period)
- Debug files are now named with the PIL & time stamp to make referencing easier
- Summary messages now include beginning time of event.