myDewControllerPro2 Windows Application ChangeLog
// (c) Copyright Robert Brown 2014-2020. All Rights Reserved.
// The schematic, code and ideas for myFocuser are released into the public domain. Users are free to implement
// these but may NOT sell this project or projects based on this project for commercial gain without express
// written permission granted from the author. Schematics, Code, Firmware, Ideas, Applications, Layout are
// protected by Copyright Law.
//
// Permission is NOT granted to any person to redistribute, market, manufacture or sell for commercial gain
// the myDewControllerPro products, ideas, circuits, builds, variations and units described or discussed
// herein or on this site.
//
// Permission is granted for personal and Academic/Educational use only.
// 2.2.9.0
// Fix scaling of form
// 2.2.8.9
// Extend certificate
// 2.2.8.8 02122017
// Changes to switch app locale to eng-us// 2.2.8.8 02122017
// Changes to switch app locale to eng-us
// 2.2.8.7 29112017
// Changes to data logging to handle windows locale settings
// 2.2.8.5 10072017
// Fix for ch1/ch2 tempoffset value settings re Windows Location; eg; Europe
// Check and validate offsets on application start
// 2.2.8.3 29122016
// fix spelling error in menu option write eeprom on exit
// Add disable/enable LCD display on controller
// {# None Disable LCD display
// }# None Enable LCD display
// 2.2.8.1 18102016
// Remember form location
// 2.2.8.0 13092016
// Changes to error handling
// 2.2.7.9 29082016
// Fix for app staying resident in memory after closing (rare occurrence)
// Rename Chart title
// 2276 19July2016
// Fix spelling mistakes
// Add standard copyright msg to make future changes easier
// Change title of message boxes to all be same "myDewControllerPro2"
// 2275 18July2016
// Disable Temp C/F on setting menu when not connected to a controller
// 2274 18July2016
// Disable some menus on startup (those that require rs232 connection)
// 2273 17July2016
// Changes to datalog header file to enable viewing by myLogViewerPro
// 2272 17July2016
// Add get and set LCD display interval between 4000-6000, appears on setting menu
// Add clearing of status messages after they have displayed for 4s or selectable time 4s-10s from settings menu
// Retrieve LCDInterval on connect
// Firmware v296 or later is required
// 2271 31Jan2016
// Changes for Win10 compatibility
// 2269 21Jan2016
// Get major version number on connect and exit if a v3 controller is found
// Not recommended to run this v2 application on a v3 controller - may damage the v3 controller
// 2268 15Dec2015
// Single instance check on startup, only one instance can run at a time
// 2267 11Dec2015
// Saves window locations and sizes, hold down shift to override
// Arduino firmware version also displayed in About box when connected
// Disable resizing of windows form and sub-forms
// Fixed errors if trying to display sub-forms more than once
// 2265 26Nov2015
// Fix for not connecting if connect 12V first
// 2264 25Nov2015
// Cleaned up some of the error messages
// Checks controller response to version and disconnects com port if there is no response
// (user could be attempting to connect to the wrong comport or some other device attached to a com port)
// 2263 24Nov2015
// Temperatures returned from controller are always RAW - offsets not applied
// Code now handles the offsets for AT, CH1 and CH2 correctly
// Only works with arduino code version 291 and higher
// Changed serial routines
// 2260 23Nov2015 BETA RELEASE
// Forgot to change the automatic returned values to F during update()
// fixed bugs in the fahrenheit and celcius routines
// 2259
// firmware - temperature values sent from controller were always in Celsius.
// Add settings menu, Fahrenheit or Celcius, default is still Celsius
// Add label which indicates what mode is displayed by the program (not the controller)
// 2258 21Nov2015
// changes to serial handling
// bug fixes for celsius / fahrenheit - I have removed the code
// bug fixes for write to eeprom on exit, now menu setting
// 2256 12Nov2015
// added some more logging of error states
// 2255 12Nov2015
// Fixed bug in Celcius/Fahrenheit updating
// 2254 12Nov2015
// changed filename of error file to be DewCtrlrLog-YYYYMMDD.txt
// makes for easier searching/sorting by date
// also, the firmware version will be written to the errorlog when connected
// 2253 11112015
// added option to save settings into controllers eeprom on disconnect
// 2252 06112015
// Temperature can now be displayed in Fahrenheit or celcius
// c# and f#
// 2251 04112015
// added more logging to code
// changed connect() code to better handle comport initialisation and failures
// 2250 02112015
// fixed check mark for settings/enable/disable logfile
// 2249 02112015
// get firmware version added to Settings menu
// added sound alerts to messagebox popups
// 2248 02112015
// Added controller test/response, under settings menu, checks for controller presence
// sends =# and expects CD#DCOK$ as response
// changes to global vars, Load() and ProcessRecCmd() and testConnectionToolStripMenuItem_Click()
// 2247 22102015
// Added force exit option to settings menu
// Removed startup dialog box
// 2246 31082015
// disabled a few more controls when not connected
// 2244 31082015
// Use published application version rather than static version string
// 2240 28082015
// Rewrite the exit events, now will not let application exit if serial port is connected
// 22310 27082015
// fixed bug when Exit using bluetooth
// 2238 25082015
// Fix error in error logging and Ch1temp offset box code
// 2235 25082015
// bug in temp offset for ch1/2 fixed, thanks Pierre
// 2234 25082015
// fixed error in application closing
// 2232 24082015
// Added correct handling for form closing to ensure correct disposal of serial port and
// saving of values and cleanup
// Added form to allow user to specify folder path for error log file, detects if not set when
// starting and pops up a folder dialog box, no more need for TEMP variables
// Adding settings menu option to reset path for error log file
// Path is saved in the application settings
// App v2230-2231 was not cleaning up memory when exitng - fixed
// 2229 24082015
// made changes to GetPathTemp() - now defaults to C:\ if no TEMP environment varirable found
// made changes to ProcessRecCmd() - added more logging and error messages
// added errorchecking to ch1/ch2 temp offsets using keypress event
// added two application settings (remembered) for ch1/ch2 temp offsets
// 2228 23082015
// update settings menu dependant upon app setting
// 2227 23082015
// changed error log file to include date in filename
// 2226 23082015
// Logging added - MyDewCtrllrLog.txt
// Changes to all serial port writes using try/catch
// added forced Update() to statustxtmsg
// implemented invariant for all pasing of temperature calls - double
// 2225 24072015
// added exception handling to connect() when attempting to open serial port
// 2224 06072015
// added tool tips to buttons in main window
// used new certificate that expires in 2020 (MakeCert)
// v2210 29052015
// added copyright pop dialog box on startup
// 20100 28032015
// added header line to csv file for data logging
// 20902 23022015
// cleaned up the catch() statements
// 20901 20022015
// fixed error in refresh comport list
// removed in form_load setting this.text title bar
// 2080 09022015
// now set directory and autogenerate filename so it can be created
// filename based on mydclogddmmyyyy-hhmm.cvs
// dir path is saved in application settings
// 2070 06022015
// ability to calibrate ch1/ch2 temp values using offsets
// 2060 06022015
// Data logging capability, export to csv file
// 2054 31012015
// In _Load() set title of form application to the version number of the published release
// automatically displays correct published version each time updated
// 150 28012015
// Added Properties.Settings.Default.COMPORT to remember comport name
// linked to variable ComPortName
// 204 23012015
// Added refresh COMPORT list box
// Added box to display version number after connect, sends v
// Made text boxes for parameters Read Only