**** NOTE **** Once again Fedora has stripped out a MySQL item, this time it is the variable "my_progname" even though it is still in the latest code supplied by MySQL Fedora for some insane reason removed it. If it is missing it will cause a linker error but there is a work around so if you run into it on Fedora or any other distro contact me for the work around. v1.0.6 cjb - **** MySQL DB CHANGE **** NOTE: The schema has changed so if you are using the mySQL DB you *MUST* run one of the upgrade scripts from the mysql> prompt while in the current directory where the upgrade scripts are located. The upgrade to 11.4 is a mandatory update for vproweather 1.0.6 and above. If DB is Version 10 run 'WeatherDB_Upgrade_10_to_11.4.sql'. If DB is Version 11 run 'WeatherDB_Upgrade_11_to_11.4.sql'. If DB is Version 11.1 run 'WeatherDB_Upgrade_11.1_to_11.4.sql'. If DB is Version 11.2 run 'WeatherDB_Upgrade_11.2_to_11.4.sql'. If DB is Version 11.3 run 'WeatherDB_Upgrade_11.3_to_11.4.sql'. - fixed an error in the Rain_HL_SET procedure populating total Rain & ET in the YHL table. If using the MySQL DB issue the CALL mysql command to correctly populate the value for 2011. CALL Reconcile_HighsLows(20111231); Looks like issue was introduced sometime in 2011. 2012 will be correct once the DB is updated to 11.4 and data is added. - NOTE: the Hi/Lo update of the Real Time data did not always update WindChill & HeatIndex. A script in the bin directory bin/Fix_HeatIndex_WindChill.sql will address that, see the comments in the script for more information. - ** NOTE ** -C option (use commas in -Z option) has changed to -c (a uppercase to lowercase change) - ** NEW ** -C (--metric) option Converts output from U.S. values to Metric values and also stores them in the DB as Metric values - flag data in the DB that can be US or Metric as such - change -F option to -q - added new "-F, --format" option - removed MySQL password max length restriction when entering password interactively - archive Prevailing and High Wind Direction now displayed as direction and not number - included sample scripts in the DBqueries-bin/ directory to display the Highs & Lows for Daily, Monthly, and Yearly dates - man page and --help updated v1.0.5 cjb - **** PAY SPECIAL ATTENTION TO v1.0.2 & v1.0.3 CHANGES **** - **** MySQL DB CHANGE **** NOTE: The schema and the stored procedures have changed, however version 11.3 of the DB is not mandatory for this version of vproweather but it is highly recommended that you upgrade the DB to 11.3. You *MUST* be at DB version 11.2 for versions 1.0.2 thru 1.0.5 of vproweather. See the WeatherDB_Upgrade_to_11.3.txt in the mySQL-DB/ directory for more information. - added Update Time Stamps to the DHL, MHL, and YHL tables - no longer rely on MySQL for get_tty_password and handle_options functions since some distros feel the need to strip it out thus not providing them - remove string length restrictions for -D, -H, -u, -p, & -S from ~/.my.cnf file. -p has size limit from command line. - added CTRL-C trap to restore serial port setting and clean up lock file - added MySQl stored procedure "Reconcile_HighsLows" to reconcile the YMD, DHL, MHL, and YHL tables if necessary. See the WeatherDB_Upgrade_to_11.3.txt in the mySQL-DB/ directory for more information. - MySQL's ~/.my.cnf overrides options -D, -S, -H, -P, -u, & -p - when making graph set lists check for overflow and return 'overflow error' if found - graph data values are now reported as "n/a" instead of 0 when sensors do not exist or when historical data is not available v1.0.4 cjb - **** PAY SPECIAL ATTENTION TO v1.0.2 & v1.0.3 CHANGES **** - added -2 option for use with Vantage Pro 2 and removed compile flag, now a runtime option - remove libraries linked in that aren't needed v1.0.3 cjb - **** PAY SPECIAL ATTENTION TO v1.0.2 CHANGES **** - **** MySQL .my.cnf CHANGES **** vproweather now expects and looks for it's own section labeled [vproweather] in the ~/.my.cnf file. See the README file in the mySQL-DB/ directory for an example - this is a quick fix for the following items - didn't have the final version of Makefile included in v1.0.2 - clean up compiler unused variable warnings that some, not all, compilers throw - added compile flag 'NOMYSQL' in Makefile if MySQL should *not* be compiled in. Uncomment line in Makefile to activate - some additional Makefile streamlining v1.0.2 cjb - **** MySQL DB CHANGE **** NOTE: The schema has changed so if you are using the mySQL DB you *MUST* run one of 3 upgrade scripts from the mysql> prompt while your current directory is where upgrade scripts are located. If your DB is Version 10 the first version released run 'WeatherDB_Upgrade_10_to_11.2.sql'. If the DB is Version 11 run 'WeatherDB_Upgrade_11_to_11.2.sql'. If the DB is Version 11.1 run 'WeatherDB_Upgrade_11.1_to_11.2.sql'. - **** MAJOR CHANGE **** MySQL is now compiled in by default. If you *are* using a MySQL DB you *must* now use -E option when running vproweather to populate the DB. This change was made so as to reduce the compile variants down to only one. (Work in process) - **** ENDIAN CHANGE **** Endianness is no longer a compile time option, it has been replaced by the '-e, --swap-endian' runtime option - **** COMPILE CHANGE **** 'make' will now determine whether to compile for a 32bit or 64bit architecture and determine the optimal values for the 'arch' and 'tune' flage if possible - **** vPro2 TESTERS NEEDED **** I could use some Vantage Pro 2 testers for a upcoming change. I am working on removing the vPro2 compile flag and making it a runtime option. The tesing would entail runing the stable version you have with the output sent to a file and running a test version I would provide also with its output sent file and emailing both files to me. If you can help please send me an email, I can't do this without some help so please if you can. I do not envision this testing to take too long. mailto: Weather at curtronics dot com - changed definition of _SOLAR_RAD_MIN_COL - added definition _UV_COL - added definition _UV_MIN_COL - use selected High/Low values because the vPro is collecting every few seconds and we may only be collecting every minute - had to add a sleep(1) when getting the model number now, timing is becoming a PITA - if the Lat or Lon is unknown and is needed try to get it from the vPro - redo how MySQL options are picked up from ~/.my.cnf - options -D, -S, -H, -P, -u, & -p override ~/.my.cnf v1.0.0 cjb - mySQL DB change. NOTE: If you are using the mySQL DB you *MUST* run one of two upgrade scripts *BEFORE* running this version of vproweather compiled with SQL. If you are already at version 11 of the Weather DB run "WeatherDB_Upgade_11_to_11.1.sql". If you are still at version 10 of the Weather DB then run "WeatherDB_Upgade_10_to_11.1.sql". See the "WeatherDB_Upgade_to_11.1.txt" file in the mySQL-DB directory for instructions on how to do that. - *NOTE* *NOTE* *NOTE!!! fixed a Rain trigger that updates TotalRain in the MHL & YHL tables when a row is deleted from the Rain table. TotalRain was still being updated properly in both tables by Inserts and Updates to the Rain table so unless you made a habit of deleting rows from the Rain table you were not affected by this. The "WeatherDB-11_TriggersAdd.sql" script needs to be run for the change to take effect so "SOURCE" that file while in the mySQL-DB/ directory to effect the fix. - added a table to the DB to indicate DB version. - add _CURRENT_RAIN_COL in Rain table - changed _CURRENT_RAIN_COL to INCREMENTAL_RAIN_COL - there is no way to insure it is the current rain, only that it is the incremental amount since the last reading - changed definition of _STORM_START_DATE_COL - changed definition of _RAIN_STORMS_START_DATE_COL - changed definition of _RAIN_STORMS_END_DATE_COL - added definition _RAIN_STORMS_START_TIME_COL - added definition _RAIN_STORMS_END_TIME_COL - added _RAIN_STORMS_START_TIME_COL & _RAIN_STORMS_END_TIME_COL in the Storms table so populate them when vPro indicates the storm has ended - new bin/ directory containing scripts to populate the new columns introduced in v0.9.9 & v1.0.0 with data. See the README-BIN file in that directory - included a "convertToCSV" Perl script in the /bin directory to convert CSV weather data to a format that the included "LoadWeatherData" can use to load the data into the Weather DB. See the README-BIN and README-LOAD for more information. - "LoadWeatherData" is now enforcing [OK] at the end of each line of data indicating that the data is valid otherwise that line of data will be ignored and not loaded - add -F to "convertToCSV" to force writing [OK] at end of output lines if input file does not contain them - added getSunRiseSetNoon (-N option) and all its associated functions using NOAA's algorithm to calculate Sunrise, Sunset, and Solar Noon - added "SolarNoon" column to the YMD table - no longer grab and lock the serial port unless communication with the vPro is necessary - in OutputData (-Z) don't output erroneous data for Barometer Trend & TrendImg if getting Real Time data was not successful - added -C option to use "," (commas) as deliminators in -Z output instead of tab deliminated - fixed ListOutputDataCols printing to stdout when it shouldn't - add -R option to print out vproweather's version - fixed IncRain calculation. Again. Intermixed integer and float math can be PITA but I think (hope) I got it this time. - put a 100uS wait between sending the command and reading the first char when getting the data structures. Thinking of doing this for all write/reads to maybe improve reliability, - add -I option to try again to get -l, -g, -x, & -t data if not successful on the first attempt for each option when the vPro is being obstainant - no longer blow outta here just because we couldn't get DavisTime (-t) but do report it as such. This was done from the days of Joe, but it's the real data we're after so at least try to get the weather data before throwing in the towel - Milestone: Just happen to look because I was curious, hit 10,000 lines of C code, 4 times the size of Joe's original program. My how we have grown, who woulda thought... - add -T option to get the time like -t but then check that it is equal to the system time and if not set it to the system time - man page now included - "make install" and "make uninstall" now included v0.9.9 cjb - mySQL DB change. NOTE: If you are using the mySQL DB you *MUST* run the upgrade script "WeatherDB_Upgade_10_to_11.sql" *BEFORE* running this version of vproweather compiled with SQL. See the "WeatherDB_Upgade_10_to_11.txt" file in the mySQL-DB directory for instructions on how to do that. - time_t values are now stored in the DT and IndexDT tables for their corresponding records. - fixed a intermittant bug populating the mySQL DB where the hour was incorrect in the DT table when adding entries from the Hourly Graph Data. This manifested itself as trying to populate other tables that already had an entry for that Record ID. - added time_t and DST output to the end of the line but before the [ok] in the undocumented -Z option. - added a "-" (dash) for the Barometric Trend in the -Z output for easier column parsing by applications. i.e. Falling-Slowly. - add (rt|hl|gr)CaptureTimestamp output to respective -x, -l, & -g options. - included scripts in the mySQL-DB-Load directory to load data into the mySQL DB from vproweather output saved in files - clean up errors reported when creating mySQL DB - check if triggers and procedures exist and only do the drop of them if they do before creating them - update StormStarted column in Rain table as soon as Real Time data indicates a storm has started - if a MySQL error occurs and is reported add the query and location to the report - missing double quote setting ET in the Rain table in RainUpdate at midnight only when it's zeroed out for the new day. Finally! - improved error reporting when a MySQL query fails for easier troubleshooting - in RainUpdate only include StormStart on INSERT if the StormStart date is not currently in the Rain table - -Z option is now documented and supported - added -z option in support of the now documented -Z option - calculate CurRain to include in output of -Z option if it can be determined from the previous entry in the -Z file - if not it's value will match that of RainDay - runDST fromat in OutputData does not need to be %3i should be %i v0.9.8 cjb - more timing issues - it appears as computers are getting faster they're getting too fast for some communications that relied on the time in between operations - add -W wait between character reads, mainly for serial over Ethernet IP - add a 1 (one) second delay after writing before looking for ACK in set time function v0.9.7 cjb - in OutputData fixed sunrise being printed for both sunrise & sunset - have to get sunrise & sunset first - using TimeConvert(rcd.wSunrise) & TimeConvert(rcd.wSunset) directly in the fprintf causes the sunrise to be printed for both sunrise & sunset - have no fricking' idea why, very perplexing v0.9.6 cjb - in OutputData (undocumented -Z) print [OK] at end of line if getting the real time data was successful v0.9.5 cjb - for some odd reason do *not* Little Endian pageCnt - bad idea documentation says it's a WORD but it behaves more like a BYTE - loop on some reads for up to 0.1 seconds, 3 seconds when waiting for archive page count to give the console time to respond this should improve relability and is necessary on some units when archive data is requested along with other data v0.9.4 cjb - if a Little Endian machine convert DMPAFT pageCnt v0.9.3 cjb - correct date calculation used when sending the date for the DMPAFT command, Davis had it wrong in the manual. !Suprise. - entering 00000000-0000 for the DMPAFT date & time will return all the data starting with the page that contains the oldest record - for some reason DMPAFT always starts with the record after the record you ask for. it thinks that is the record you asked for. Go figure. Maybe it's supposed to do that. v0.9.2 cjb - DMP & DMPAFT archive data was clobbering graph data when run together, goes way back to buffer usage in v0.6 and before, split into separate buffers - also, when real time data and archive data were requested together archive data was not displayed, has been corrected and is due to timing issue with getting LOOP packet - report empty DMP & DMPAFT archive data records if so but this may be bogus - based on user report v0.9.1 cjb - added Little Endian conversion of DMP & DMPAFT archive data v0.9.0 cjb - add options -a & -A to get Vantage Pro(2) DMP & DMPAFT archive data respectively v0.8-44 cjb - dump the loop or graph raw data to the file if requested before outputting said data v0.8-43 cjb - math format screw up in new HeatIndex calculation v0.8-42 cjb - release version of fixes incorporated in -40 & -41 - added -E option in SQL compile to prevent updating DB v0.8-41 cjb - fix longopts not working and seg fault when compiled for mySQL when using -fpack-struct but bogus data returned when not compiled with -fpack-struct. No idea when this started but can no longer compile with -fpack-struct which is actually good from a performance standpoint. fixed by using __attribute__ ((packed)) on structures and no longer compiling with -fpack-struct v0.8-39 cjb - remove -fpack-struct from Makefile, Segmentation fault when compiled with SQL v0.8-37 cjb - add debuging for turning the backlite on/off v0.8-36 cjb - buffer overflow for 0xfff missing solar sensor v0.8-19 cjb - thru -33 changes to get it working on a SLUG, may, may not work, let me know please v0.8-18 cjb - serial port configuration tweaks v0.8-10 cjb - modify BaroTrend & BaroTrendImage to take into account unsigned values along with singed values (multi-architecture support) - modify THSW check (i.e. no solar radiation detector) v0.8-9 cjb - add handling for Little Endian machines via compiler flag for RT & HL data (graph data after testing) - clean up multiple compiler warnings in mySQLhandler.c that weren't there before v0.8-8 cjb - add Sunrise & Sunset to output of undocumented -Z option. Oops. guess it's documented now. v0.8-7 cjb - fix buffer overflow in TimeRef routines when using 12 hour time v0.8-6 cjb - official release with mySQL support and DB creation scripts v0.8-0 cjb - add access to mySQL db - now locks the serial port - add (unsigned char *) cast to all passing of pData to finally get rid of the annoying 'differ in signedness' compiler warning - create functions BaroTrend, BaroTrendImage, WindRoseDir and move respective code to them - rewrote PrintTimeRef() that Prints time references for use in graph axis generations due to erroneous output if the date changes mid-execution of function. More comments in function. v0.7-5 cjb - looks like VP2's offset RAIN_RATE_1_MIN by 32767, gonna have to keep an eye on this v0.7-4 cjb - added WIND_HI_DIR_BY_DAYS - added WIND_HI_DIR_BY_MONTHS - added WIND_HI_DIR_BY_YEARS - added UV_MEDS_BY_HOURS - added UV_MEDS_BY_DAYS v0.7-3 cjb - Vantage Pro2 reports some null values as 32768 so zero them v0.7-2 cjb - VP2 graph data bug fix v0.7-1 cjb - we seemed to always have ignored WIND_SPEED_HOUR_HIGHS (from the day of Joe) so let's add it now, no reason not to v0.7-0 cjb - added -G --dump-graph packet option v0.6-9 cjb - modified graphic data sets-memory pointer offsets due change in locations of the graph data in Vantage Pro2 v0.6-8 cjb - convert hld.wTHSWHiDay using (signed short) - change THSW availability check to hld.wTHSWHiDay == 65535 v0.6-7 cjb - fix _WIND_DIR_ROSE (compass rose version) when testing for >= 347 && < 12 v0.6-6 cjb - added PrintSolarSet to output Solar graph data - do not divide Solar data by 10 (.i.e. not / 10.0) - added PrintETByteSet & PrintETSet to output ET graph data - also output THSW data - added --dump-loop option v0.6-5 cjb - changed strftime, got rid of the commas for one thing v0.6-4 cjb - print _BARO_CURR a.k.a rtBaroCurr out to 3 decimal places - do the same for all _BARO_ attributes v0.6-3 cjb - Don't bother using NEXT_10MIN_PTR or NEXT_15MIN_PTR they never get updated per Davis due to EEPROM update contraints v0.6-2 cjb - added and used bMtime in TimeConvert v0.6-1 cjb - fixed _HUM_LO_BY_DAYS copying data for HUM_OUT_DAY_LOW_TIMES instead of HUM_OUT_DAY_LOW v0.6 jj - Fix baro trend problem (again). Tweak parm checks. v0.5 jj - Fixed forecast strings. Fix baro trend problem. v0.4 jj - Fixed problem with string lookup v0.3 jj - Added forecast rule strings v0.2 jj - fixed baud rate setting problem, removed baud rate cmd line parm because I don't have thhe time right now to track it down. v0.1 jj - initial revision