From: Martin H. <mh...@us...> - 2005-04-12 08:31:47
|
Update of /cvsroot/opengtoolkit/serial/c_source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26906/c_source Modified Files: lvserial.cpp lvserial.def lvserial.h lvserial.rc lvserial.sln lvserial.suo Log Message: If there is only a single termination character, we also store this character into the DCB structure, exept the termination mode is COMM_TERM_REGEX. Added some new features and changed the behaviour of the handshake options of CommOptions(). This function is now closer to the options used for the windows mode command. Added CommClose2(). This function has an additional parameter and is now able to close all open instances of a specific serial port. (yes, I know, we do not really have independent instances of the same serial port). Added CommCloseAll(), which closes all open serial ports. Added CommGetHandles() which retrieves all serial port handles. Added CommGetPortName(). This function returns the name of the serial port. The function returns the name (and options) used to call CommOpenPort() and the operating systems name of the serial port. Fixed the internal (operating systems) name of the serial port. If CommOpenPort was called with COMx the internal name is now \\.\COMx. Previously this was \\.\\COMx which is wrong, but worked for Win XP. Index: lvserial.sln =================================================================== RCS file: /cvsroot/opengtoolkit/serial/c_source/lvserial.sln,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** lvserial.sln 18 Mar 2005 23:23:06 -0000 1.1 --- lvserial.sln 12 Apr 2005 08:31:37 -0000 1.2 *************** *** 2,5 **** --- 2,7 ---- Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lvserial", "lvserial.vcproj", "{1CD853E4-2CCB-499E-B9BF-9E653D6D3B54}" EndProject + Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "lvserial_driver", "lvserial_driver.vdproj", "{A7A15E11-98BB-4AFD-9569-BEBBF3F93320}" + EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dftables", "dftables.vcproj", "{0E49C1D0-1D2F-46C3-932F-6C8D08DA2FA0}" EndProject *************** *** 16,19 **** --- 18,23 ---- {1CD853E4-2CCB-499E-B9BF-9E653D6D3B54}.Release.ActiveCfg = Release|Win32 {1CD853E4-2CCB-499E-B9BF-9E653D6D3B54}.Release.Build.0 = Release|Win32 + {A7A15E11-98BB-4AFD-9569-BEBBF3F93320}.Debug.ActiveCfg = Debug + {A7A15E11-98BB-4AFD-9569-BEBBF3F93320}.Release.ActiveCfg = Release {0E49C1D0-1D2F-46C3-932F-6C8D08DA2FA0}.Debug.ActiveCfg = Debug|Win32 {0E49C1D0-1D2F-46C3-932F-6C8D08DA2FA0}.Debug.Build.0 = Debug|Win32 Index: lvserial.rc =================================================================== RCS file: /cvsroot/opengtoolkit/serial/c_source/lvserial.rc,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** lvserial.rc 21 Mar 2005 01:41:25 -0000 1.2 --- lvserial.rc 12 Apr 2005 08:31:37 -0000 1.3 *************** *** 54,59 **** VS_VERSION_INFO VERSIONINFO ! FILEVERSION 0,0,4,1 ! PRODUCTVERSION 0,0,4,1 FILEFLAGSMASK 0x17L #ifdef _DEBUG --- 54,59 ---- VS_VERSION_INFO VERSIONINFO ! FILEVERSION 0,0,5,0 ! PRODUCTVERSION 0,0,5,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG *************** *** 72,81 **** VALUE "CompanyName", "MH-Systemtechnik, www.mhst.de" VALUE "FileDescription", "Serial Port API" ! VALUE "FileVersion", "0, 0, 4, 1" VALUE "InternalName", "lvserial" VALUE "LegalCopyright", "Martin Henz Systemtechnik, 2004" VALUE "OriginalFilename", "lvserial.dll" VALUE "ProductName", "Serial Port API" ! VALUE "ProductVersion", "0, 0, 4, 1" END END --- 72,81 ---- VALUE "CompanyName", "MH-Systemtechnik, www.mhst.de" VALUE "FileDescription", "Serial Port API" ! VALUE "FileVersion", "0, 0, 5, 0" VALUE "InternalName", "lvserial" VALUE "LegalCopyright", "Martin Henz Systemtechnik, 2004" VALUE "OriginalFilename", "lvserial.dll" VALUE "ProductName", "Serial Port API" ! VALUE "ProductVersion", "0, 0, 5, 0" END END Index: lvserial.suo =================================================================== RCS file: /cvsroot/opengtoolkit/serial/c_source/lvserial.suo,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsoQf0en and /tmp/cvsoBme1A differ Index: lvserial.cpp =================================================================== RCS file: /cvsroot/opengtoolkit/serial/c_source/lvserial.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** lvserial.cpp 23 Mar 2005 13:06:32 -0000 1.4 --- lvserial.cpp 12 Apr 2005 08:31:36 -0000 1.5 *************** *** 73,77 **** //options into the serial port name and the configuration string. This function //also changes any ASRL port name to the OS default port name (COMx) ! long __CommSplitPortAndOptions(char *pszPort, char **ppszRealPort, char **ppszOptions); //serial port compare function. Uses to detect an already opened serial port. --- 73,77 ---- //options into the serial port name and the configuration string. This function //also changes any ASRL port name to the OS default port name (COMx) ! inline long __CommSplitPortAndOptions(char *pszPort, char **ppszRealPort, char **ppszOptions); [...1260 lines suppressed...] + } + + pComm = (PCOMM)ListGetElement(gpCommList, hComm); + + _ASSERT(pComm); + + if ((err = LStrPrintf(shName, (CStr)"%s", pComm->pszPort)) != noErr) + { + (*shName)->cnt = 0; + (*shOriginal)->cnt = 0; + lv_EasyErrBld(COMM_ERR_HANDLE, __FUNCTION__, pError); + } + + if ((err = LStrPrintf(shOriginal, (CStr)"%s", pComm->pszOriginalName)) != noErr) + { + (*shName)->cnt = 0; + (*shOriginal)->cnt = 0; + lv_EasyErrBld(COMM_ERR_HANDLE, __FUNCTION__, pError); + } + } Index: lvserial.def =================================================================== RCS file: /cvsroot/opengtoolkit/serial/c_source/lvserial.def,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** lvserial.def 18 Mar 2005 23:13:49 -0000 1.2 --- lvserial.def 12 Apr 2005 08:31:37 -0000 1.3 *************** *** 2,5 **** --- 2,7 ---- EXPORTS CommOpenPort EXPORTS CommClosePort + EXPORTS CommClosePort2 + EXPORTS CommCloseAll EXPORTS CommWrite EXPORTS CommWriteAndReceiveEcho *************** *** 39,44 **** --- 41,50 ---- EXPORTS CommFree EXPORTS CommFreePortList + EXPORTS CommGetHandles + EXPORTS CommGetPortName EXPORTS lvCommOpenPort EXPORTS lvCommClosePort + EXPORTS lvCommClosePort2 + EXPORTS lvCommCloseAll EXPORTS lvCommWrite EXPORTS lvCommWriteAndReceiveEcho *************** *** 76,77 **** --- 82,85 ---- EXPORTS lvCommGetUserData EXPORTS lvCommListPorts + EXPORTS lvCommGetHandles + EXPORTS lvCommGetPortName Index: lvserial.h =================================================================== RCS file: /cvsroot/opengtoolkit/serial/c_source/lvserial.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** lvserial.h 21 Mar 2005 01:40:55 -0000 1.3 --- lvserial.h 12 Apr 2005 08:31:37 -0000 1.4 *************** *** 36,39 **** --- 36,40 ---- HANDLE hC; //the OS handle of the opened serial port char *pszPort; //serial port name + char *pszOriginalName; //the given serial port name long lTeminationMode; //read termination mode char *pcTermination; //read termination characters *************** *** 72,75 **** --- 73,87 ---- #endif + #ifndef LV_ULONGARRAY + #define LV_ULONGARRAY + #pragma pack (1) + typedef struct { + int32 dimSize; + uInt32 elt[1]; + } ULongArray; + #pragma pack() + typedef ULongArray **ULongArrayHandle; + #endif + #endif //LVSERIAL_CONST_ONLY *************** *** 194,197 **** --- 206,211 ---- long CommOpenPort(PHANDLE phComm, char * pszPort, int fDuplicate); long CommClosePort(HANDLE hComm); + long CommClosePort2(HANDLE hComm, int fCloseAll); + long CommCloseAll(void); long CommWrite( HANDLE hComm, *************** *** 287,290 **** --- 301,306 ---- void CommFree(LPVOID ptr); void CommFreePortList(char **ports); + long CommGetHandles(HANDLE **pHandles); + long CommGetPortName(HANDLE hComm, char **ppszName, char **ppszOriginal); /* -----------------------------------------------------------------------------------*/ *************** *** 292,295 **** --- 308,313 ---- void lvCommOpenPort(PHANDLE phComm, LStrHandle shPort, LVBoolean *plfDuplicate, pErrC pError); void lvCommClosePort(HANDLE hComm, pErrC pError); + void lvCommClosePort2(HANDLE hComm, LVBoolean *plfCloseAll, pErrC pError); + void lvCommCloseAll(pErrC pError); void lvCommWrite( HANDLE hComm, *************** *** 391,394 **** --- 409,415 ---- void lvCommGetUserData(HANDLE hComm, unsigned long *pulUserData, pErrC pError); void lvCommListPorts(LStrArrayHandle halsPorts, pErrC pError); + void lvCommGetHandles(ULongArrayHandle *haulHandles, pErrC pError); + void lvCommGetPortName(HANDLE hComm, LStrHandle shName, LStrHandle shOriginal, pErrC pError); + #if defined(__cplusplus) || defined(__cplusplus__) |