svnno****@sourc*****
svnno****@sourc*****
2016年 3月 15日 (火) 22:43:16 JST
Revision: 6347 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/6347 Author: salarm Date: 2016-03-15 22:43:15 +0900 (Tue, 15 Mar 2016) Log Message: ----------- シリアルポートの切断・接続処理の修正 ・/C=でシリアルポートを指定して起動する場合にポートがなければポートの接続を待つようにした。 ・一部の機器でUSBシリアルポートの接続・切断が検出できない不具合を修正した。 Modified Paths: -------------- trunk/doc/ja/html/about/history.html trunk/teraterm/teraterm/vtwin.cpp -------------- next part -------------- Modified: trunk/doc/ja/html/about/history.html =================================================================== --- trunk/doc/ja/html/about/history.html 2016-03-13 11:06:08 UTC (rev 6346) +++ trunk/doc/ja/html/about/history.html 2016-03-15 13:43:15 UTC (rev 6347) @@ -39,10 +39,21 @@ <li></li> </ul> </li --> + <li>\x95ύX + <ul> + <li>/C=\x82ŃV\x83\x8A\x83A\x83\x8B\x83|\x81[\x83g\x82\xF0\x8Ew\x92肵\x82ċN\x93\xAE\x82\xB7\x82\xE9\x8Fꍇ\x82Ƀ|\x81[\x83g\x82\xAA\x82Ȃ\xAF\x82\xEA\x82|\x81[\x83g\x82̐ڑ\xB1\x82\xF0\x91҂悤\x82ɂ\xB5\x82\xBD\x81B + <ul> + <li><a href="../setup/teraterm-com.html#AutoComPortReconnect">AutoComPortReconnect</a>=on\x82̎\x9E\x82ɗL\x8C\xF8</li> + <li>\x90ڑ\xB1\x82\xF0\x91҂ꍇ\x81A\x90ڑ\xB1\x83G\x83\x89\x81[\x83\x81\x83b\x83Z\x81[\x83W\x82͕\\x8E\xA6\x82\xB3\x82\xEA\x82܂\xB9\x82\xF1\x81B</li> + </ul> + </li> + </ul> + </li> <li>\x83o\x83O\x8FC\x90\xB3 <ul> <li>\x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82\xCC 1 \x8Ds\x8C`\x8E\xAE\x82\xCC <a href="../macro/command/ifthenelseif.html">if</a> \x95\xB6\x82ŁA\x83p\x83\x89\x83\x81\x81[\x83^\x82̖\xB3\x82\xA2\x83}\x83N\x83\x8D\x83R\x83}\x83\x93\x83h\x82\xAA\x83G\x83\x89\x81[\x82ƂȂ\xE9\x96\xE2\x91\xE8\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li> + <li>\x88ꕔ\x82̋@\x8A\xED\x82\xC5USB\x83V\x83\x8A\x83A\x83\x8B\x83|\x81[\x83g\x82̐ڑ\xB1\x81E\x90ؒf\x82\xAA\x8C\x9F\x8Fo\x82ł\xAB\x82Ȃ\xA2\x95s\x8B\x82\xF0\x8FC\x90\xB3\x82\xB5\x82\xBD\x81B</li> </ul> </li> Modified: trunk/teraterm/teraterm/vtwin.cpp =================================================================== --- trunk/teraterm/teraterm/vtwin.cpp 2016-03-13 11:06:08 UTC (rev 6346) +++ trunk/teraterm/teraterm/vtwin.cpp 2016-03-15 13:43:15 UTC (rev 6347) @@ -351,6 +351,11 @@ pUnregisterDeviceNotification(hDevNotify); } +void SetAutoConnectPort(int port) +{ + AutoDisconnectedPort = port; +} + // // \x97\xE1\x8AO\x83n\x83\x93\x83h\x83\x89\x82̃t\x83b\x83N\x81i\x83X\x83^\x83b\x83N\x83g\x83\x8C\x81[\x83X\x82̃_\x83\x93\x83v\x81j // @@ -3110,25 +3115,29 @@ BOOL CVTWindow::OnDeviceChange(UINT nEventType, DWORD_PTR dwData) { - PDEV_BROADCAST_PORT pDevPort; + PDEV_BROADCAST_HDR pDevHdr; #ifdef DEBUG char port_name[8]; /* COMxxxx + NULL */ #endif - pDevPort = (PDEV_BROADCAST_PORT)dwData; + pDevHdr = (PDEV_BROADCAST_HDR)dwData; switch (nEventType) { case DBT_DEVICEARRIVAL: #ifdef DEBUG - OutputDebugPrintf("DBT_DEVICEARRIVAL devicetype=%d PortType=%d AutoDisconnectedPort=%d\n", pDevPort->dbcp_devicetype, ts.PortType, AutoDisconnectedPort); + OutputDebugPrintf("DBT_DEVICEARRIVAL devicetype=%d PortType=%d AutoDisconnectedPort=%d\n", pDevHdr->dbch_devicetype, ts.PortType, AutoDisconnectedPort); #endif - if (pDevPort->dbcp_devicetype == DBT_DEVTYP_PORT && + if ((pDevHdr->dbch_devicetype == DBT_DEVTYP_PORT || pDevHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) && ts.PortType == IdSerial && ts.AutoComPortReconnect && AutoDisconnectedPort == ts.ComPort) { #ifdef DEBUG - strncpy_s(port_name, sizeof(port_name), pDevPort->dbcp_name, _TRUNCATE); - OutputDebugPrintf("%s\n", port_name); + if (pDevHdr->dbch_devicetype == DBT_DEVTYP_PORT) { + PDEV_BROADCAST_PORT pDevPort; + pDevPort = (PDEV_BROADCAST_PORT)pDevHdr; + strncpy_s(port_name, sizeof(port_name), pDevPort->dbcp_name, _TRUNCATE); + OutputDebugPrintf("%s\n", port_name); + } #endif if (!cv.Open) { /* Tera Term \x96\xA2\x90ڑ\xB1 */ @@ -3144,15 +3153,19 @@ break; case DBT_DEVICEREMOVECOMPLETE: #ifdef DEBUG - OutputDebugPrintf("DBT_DEVICEREMOVECOMPLETE devicetype=%d PortType=%d AutoDisconnectedPort=%d\n", pDevPort->dbcp_devicetype, ts.PortType, AutoDisconnectedPort); + OutputDebugPrintf("DBT_DEVICEREMOVECOMPLETE devicetype=%d PortType=%d AutoDisconnectedPort=%d\n", pDevHdr->dbch_devicetype, ts.PortType, AutoDisconnectedPort); #endif - if (pDevPort->dbcp_devicetype == DBT_DEVTYP_PORT && + if ((pDevHdr->dbch_devicetype == DBT_DEVTYP_PORT || pDevHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) && ts.PortType == IdSerial && ts.AutoComPortReconnect && AutoDisconnectedPort == -1) { #ifdef DEBUG - strncpy_s(port_name, sizeof(port_name), pDevPort->dbcp_name, _TRUNCATE); - OutputDebugPrintf("%s\n", port_name); + if (pDevHdr->dbch_devicetype == DBT_DEVTYP_PORT) { + PDEV_BROADCAST_PORT pDevPort; + pDevPort = (PDEV_BROADCAST_PORT)pDevHdr; + strncpy_s(port_name, sizeof(port_name), pDevPort->dbcp_name, _TRUNCATE); + OutputDebugPrintf("%s\n", port_name); + } #endif if (cv.Open) { /* Tera Term \x90ڑ\xB1\x92\x86 */ @@ -3712,6 +3725,12 @@ else { Connecting = TRUE; ChangeTitle(); + if (ts.AutoComPortReconnect && ts.PortType == IdSerial) { + if (CheckComPort(ts.ComPort) == 0) { + SetAutoConnectPort(ts.ComPort); + return 0; + } + } CommOpen(HVTWin,&ts,&cv); } return 0;