ConLib versions
This document contains version information for the ConLib library.
Known bugs:
* Numerical recipes (fiiting): If initial guesses are to bad the gaussj routine just exits the application in nrerror(..). This ought to be made a lot better. Implement return value to indicate errors, which then can be handled at the appropriate level. (JSN 001004)
Version 1.25.121.147 (jsn 2006-11-14):
CSerialPort::DisconnectPort:
Added seperate thread in which the call to CloseHandle is done. This way a
failure (hanging) of CloseHandle does not hang the owner thread. (Seems also to
be fewer failures of CloseHandle) Version 1.25.121.145 (tw 2006-11-13):
Corrected:
Compiler directive: Changed from default to value /EHsc to /EHa: Should be /EHa.
Otherwise, normal exceptions are not handled by try catch => program chrash/terminates
when exception.
Done for all.
Version 1.25.121.144 (jsn 2006-11-13):
CSerialPort:GetString and GetData now deletes any null characters in the receivedData buffer when called.
Version 1.25.120.142 (tw 2006-10-23):
Improved/Corrected ThreadList:
- ThreadStarter: Implemented check for valid thread list before accessing it during thread shutdown. Try catch around all threadlist accesses. Log to program log in case of error.
- Moved RemoveWindThread from CCsWinThread::InitInstance to CCsWinThread::ExitInstance
Version 1.25.119.141 (tw 2006-10-13):
CONSYS_DEFAULT_THREADLIST_CLOSE_TIMEOUT 600000
Changed default timeout from 150000 - The CSocketServiceThread::~CSocketServiceThread call m_pWriteArchive->Flush() - if the connection is broken by for instansce a debug break from an external connection, the Flush() timeout was longer than the threadlist timeout in the in CSocketTransport => CSocketTransport was deleted before CSocketServiThread has terminated. In order to avoid this and similar situations the thread list close timeout has been increased.
Version 1.25.113.137 (tw 2006-08-09):
CSerialPort:
Changed default port setting: Now dcb.fOutxCtsFlow = FALSE, before dcb.fOutxCtsFlow = TRUE. seems more resonable. Undulator device (first device tested after change) did not work with TRUE.
Version 1.25.112.135 (tw 2006-07-05):
CSerialPort:
Implementation changed, now initialize all comm port settings to fit port settings at boot time.
Added FlowControl option in CSerialPort::SetCommParam, default RTS_CONTROL_DISABLE (no flow control).
This is done to avoid the startup problem seen in some devices, where it was nescary to initiate the communication with the terminal program before starting the device.
Version 1.25.106.129 (tw 2006-02-01):
CSerialPort - Changed monitor name - , changed most attributes from protected to private.
Version 1.25.106.125 (tw 2006-01-31):
Implemented monitor in WriteToProgramLog
CSerialPort - Changed implementation
Version 1.25.106.125 (tw 2006-01-31):
Threads: Implemented list of running threads in CThreadList. Remark; Only enabled, if the ConSys log Filter LOG_THREAD_INFO is defined in the registry.
Version 1.24.99.116 (tw 2005-01-04):
CSerialPort: Changed behavior when SetNrOfCharBeforeEvent - now resets time to next update according to new value.
Version 1.24.98.114 (tw 2004-12-14):
CSerialPort: Corrected bug in timeout method - The way it was implemented, the timeout period was always to long.
Version 1.24.96.110 (tw 2004-10-29):
Macros.h: Set and get value methods now supports ODBC pseudo NULL values.
Version 1.24.95.105 (tw 2004-06-15):
CNTService, implemented support for power mangement messages.
Version 1.23.92.96 (tw 2004-02-26):
CTreadList :
* Destructor corrected - waited for thread counter timeout
even when allready checked in WasitFor...
* Default timeout changed from 4 to 3 minutes
* Log to program log file if trying to create a new thread
after WaitForAll ... has been called.
Version 1.23.91.93 (031209 TW):
CMonitor: added pointer to class using the protection.
ENTER_AND_TRY_BEGIN - changed, set 'this' in monitor.
ENTER_AND_TRY_BEGIN_GLOBAL - new macro to be used in global methods instead of ENTER_AND_TRY_BEGIN
Version 1.22.89.85 (030806 TW/JSN):
Changed writeMonitor to the general monitor. It is feared that
ClearCommError in
ReceiveAndCollectData() can abort the WriteFile operation.
In rare cases the WriteData method failed with system error 995, ERROR_OPERATIOn_ABORTED. This was proberbly due to ClearCommError.
WriteData methods now returns system error code.
Version 1.20.80.77 (14/5-2003 TW):
CKernelService Updated:.Did not handle shutdown correct. Corrected. See also ConSysKernel revision file.
Version 1.18.73.67 (22/1-2003 TW):
Converted to compile with dot-net c++ version: CHandle changed to CCsHandle - implementation changed.
Version 1.14.54.52 (20/12-2001 TW):
CThreadList, desctructor: It seems to be bad practice to wait fro all threads to terminate in the destructor. This may lead to situations, where new objects are alocated in the memory where the threadlist is alocated => failures when threads access the threadlist during destruction. Has implemented new method: WaitForAllThreadsTerminated, that should be called before the thread list destructor is called.
Version 1.14.50.50 (21/11-2001 TW):
Defined macro's for exception handling (in baseclasses.h).
TreadStarter - exception handling of errors in CThread::Run method: The thread starter now catches unhandled exceptions occurring in the CThread::Run method. Errors are logged in the application log file.
Application log file methods: Added API methods to write error log messages to an application log file.
Version 1.13.45.42 (25/5-2001 JSN):
Added a few extra routines in CSerialPort.
Added new function (DDV_FileNoExt) in UtilityFunctions.
Version 1.11.40.37 (24/11-2000 JSN):
Added Math macros for rounding (off, up, and down).
Version 1.11.39.35 (30/9-2000 JSN):
Added Gauss fitting function to Num Recipes.
Version 1.11.39.34 (24/9-2000 JSN):
Added numerical recipes files (data fitting - mrqmin).
Version 1.11.39.33 (29/8-2000 TW):
New class CCsInternetSession: Specialised internet session for ConSys applications.
Version 1.7.20.28 (11/11-99 JSN):
GetUntilSpace string utility function added.
Version 1.6.17.27 (28/9-99 JSN):
MathUtilities.h and .cpp added to project. Includes among other small stuff different parsing routines (for one double and for arrays).
Version 1.1.12.21 (28/4-99 TW):
CBinaryTree template class: Changed input parameter from by value to by reference in order to avoid a lot of copying during construction.
The very CPU expensive recursive ASSERT_VALID check of CbinaryTree has been made optional by the defining the BINERY_TREE_ASSERT_VALID constant
Version 1.1.12.21 (28/4-99 TW):
Added new thread type, CCSWinThread, based on CWinThread.
Has a message pump and work with the ConSys thread structure maintained by CThreadList
Version 1.1.12.19 (24/3-99 jsn):
New macro for Adding Leading Zeros to a string: LEADING_ZEROS(str, totalLength)
Version 1.1.12.16 (10/3-99 TW):
New macros for simple parameter protection, mainly for use in devices:
Macros for protecting simple assigments in situations with a single thread assigning new values to a class instanse variable and number of threads reading the value. The macros are thread safe with these assumptions. REMARK: The reading macro includes a while loop - avoid using a new operator in the read macro.
SAFE_DATA_WRITE(dataProtect,body)
SAFE_DATA_READ(dataProtect,body)
Version 1.1.12.15 (25/2-99 TW):
New macros for monitor protection:
ENTER_AND_TRY_BEGIN(monitor)
ENTER_AND_TRY_END(monitor)
Same functionality as ENTER_AND_TRY1(monitor,body)
Ex:
ENTER_AND_TRY(
xxx
)
Equals
ENTER_AND_TRY_BEGIN(monitor)
xxx
ENTER_AND_TRY_END(monitor)
Version 1.1.4.11 (24/7-98 JSN):
Macro ROUND_DOUBLE_N_DECIMALS added.
Version 1.1.2.10 (8/7-98):
CTreeDocView::GetHitDocItem added
The CTreeDocView now allows hit test.
Version 1.1.2.9 (19/6-98):
New clean version of RCM
A new clean version of rcm has been created. The revision numbers now follow the RCM version numbers.
Automatic insertion of RCM version numbers in resource version
The version informations in the resource script generate the version information from the common ConSys version header file and the ConLib version file generated by the new TCL scripts.
Version 1.1.33.46 (19/6-98):
Deadlock in threadlist removed
A deadlock in CThreadList occurred when a delete of the list occurred at the same time as a start of a new thread. Thre protecting monitor is removed.
Version 1.0.33.44 (19/6-98):
MemCheck added
The headers for MemCheck is added to all .cpp and .c files. To enable MemCheck define MEMCHECK in the settings of the component. MemCheck MUST be installed on the computer.
Last Modified 14 January 2019