Showing
10 changed files
with
1027 additions
and
804 deletions
| @@ -26,7 +26,7 @@ | @@ -26,7 +26,7 @@ | ||
| 26 | /* | 26 | /* |
| 27 | Prototypes for functions called only in this file | 27 | Prototypes for functions called only in this file |
| 28 | */ | 28 | */ |
| 29 | -BOOL CALLBACK AboutDlgProc( HWND, UINT, WPARAM, LPARAM ); | 29 | +//BOOL CALLBACK AboutDlgProc( HWND, UINT, WPARAM, LPARAM ); |
| 30 | UINT InitAboutDlg( HWND ); | 30 | UINT InitAboutDlg( HWND ); |
| 31 | 31 | ||
| 32 | /*----------------------------------------------------------------------------- | 32 | /*----------------------------------------------------------------------------- |
| @@ -39,11 +39,11 @@ PARAMETERS: | @@ -39,11 +39,11 @@ PARAMETERS: | ||
| 39 | PURPOSE: Creates the modal About dialog | 39 | PURPOSE: Creates the modal About dialog |
| 40 | 40 | ||
| 41 | -----------------------------------------------------------------------------*/ | 41 | -----------------------------------------------------------------------------*/ |
| 42 | -BOOL CmdAbout(HWND hwnd) | ||
| 43 | -{ | ||
| 44 | - DialogBox(ghInst, MAKEINTRESOURCE(IDD_ABOUT), hwnd, AboutDlgProc); | ||
| 45 | - return 0; | ||
| 46 | -} | 42 | +//BOOL CmdAbout(HWND hwnd) |
| 43 | +//{ | ||
| 44 | +// DialogBox(ghInst, MAKEINTRESOURCE(IDD_ABOUT), hwnd, AboutDlgProc); | ||
| 45 | +// return 0; | ||
| 46 | +//} | ||
| 47 | 47 | ||
| 48 | /*----------------------------------------------------------------------------- | 48 | /*----------------------------------------------------------------------------- |
| 49 | 49 | ||
| @@ -102,47 +102,47 @@ HISTORY: Date: Author: Comment: | @@ -102,47 +102,47 @@ HISTORY: Date: Author: Comment: | ||
| 102 | 10/27/95 AllenD Wrote it | 102 | 10/27/95 AllenD Wrote it |
| 103 | 103 | ||
| 104 | -----------------------------------------------------------------------------*/ | 104 | -----------------------------------------------------------------------------*/ |
| 105 | -BOOL CALLBACK AboutDlgProc(HWND hdlg, UINT uMessage, WPARAM wparam, LPARAM lparam) | ||
| 106 | -{ | ||
| 107 | - static UINT uTimer; | ||
| 108 | - static WORD wCurrentIconId; | ||
| 109 | - | ||
| 110 | - switch(uMessage) | ||
| 111 | - { | ||
| 112 | - case WM_INITDIALOG: | ||
| 113 | - uTimer = InitAboutDlg(hdlg); | ||
| 114 | - wCurrentIconId = IDI_APPICON; | ||
| 115 | - break; | ||
| 116 | - | ||
| 117 | - case WM_TIMER: | ||
| 118 | - /* | ||
| 119 | - when timer goes off, then change to next icon | ||
| 120 | - */ | ||
| 121 | - { | ||
| 122 | - HICON hIcon; | ||
| 123 | - | ||
| 124 | - switch(wCurrentIconId) | ||
| 125 | - { | ||
| 126 | - case IDI_APPICON: wCurrentIconId = IDI_APPICON2; break; | ||
| 127 | - case IDI_APPICON2: wCurrentIconId = IDI_APPICON3; break; | ||
| 128 | - case IDI_APPICON3: wCurrentIconId = IDI_APPICON4; break; | ||
| 129 | - case IDI_APPICON4: wCurrentIconId = IDI_APPICON; break; | ||
| 130 | - } | ||
| 131 | - | ||
| 132 | - hIcon = LoadIcon(ghInst, MAKEINTRESOURCE(wCurrentIconId)); | ||
| 133 | - SendMessage(GetDlgItem(hdlg, IDC_PICTURE), STM_SETICON, (WPARAM) hIcon, 0); | ||
| 134 | - } | ||
| 135 | - break; | ||
| 136 | - | ||
| 137 | - case WM_COMMAND: | ||
| 138 | - if (LOWORD(wparam) == IDOK) { | ||
| 139 | - KillTimer(hdlg, uTimer); | ||
| 140 | - EndDialog(hdlg, TRUE); | ||
| 141 | - return TRUE; | ||
| 142 | - } | ||
| 143 | - break; | ||
| 144 | - } | ||
| 145 | - | ||
| 146 | - return FALSE; | ||
| 147 | -} | 105 | +//BOOL CALLBACK AboutDlgProc(HWND hdlg, UINT uMessage, WPARAM wparam, LPARAM lparam) |
| 106 | +//{ | ||
| 107 | +// static UINT uTimer; | ||
| 108 | +// static WORD wCurrentIconId; | ||
| 109 | +// | ||
| 110 | +// switch(uMessage) | ||
| 111 | +// { | ||
| 112 | +// case WM_INITDIALOG: | ||
| 113 | +// uTimer = InitAboutDlg(hdlg); | ||
| 114 | +// wCurrentIconId = IDI_APPICON; | ||
| 115 | +// break; | ||
| 116 | +// | ||
| 117 | +// case WM_TIMER: | ||
| 118 | +// /* | ||
| 119 | +// when timer goes off, then change to next icon | ||
| 120 | +// */ | ||
| 121 | +// { | ||
| 122 | +// HICON hIcon; | ||
| 123 | +// | ||
| 124 | +// switch(wCurrentIconId) | ||
| 125 | +// { | ||
| 126 | +// case IDI_APPICON: wCurrentIconId = IDI_APPICON2; break; | ||
| 127 | +// case IDI_APPICON2: wCurrentIconId = IDI_APPICON3; break; | ||
| 128 | +// case IDI_APPICON3: wCurrentIconId = IDI_APPICON4; break; | ||
| 129 | +// case IDI_APPICON4: wCurrentIconId = IDI_APPICON; break; | ||
| 130 | +// } | ||
| 131 | +// | ||
| 132 | +// hIcon = LoadIcon(ghInst, MAKEINTRESOURCE(wCurrentIconId)); | ||
| 133 | +// SendMessage(GetDlgItem(hdlg, IDC_PICTURE), STM_SETICON, (WPARAM) hIcon, 0); | ||
| 134 | +// } | ||
| 135 | +// break; | ||
| 136 | +// | ||
| 137 | +// case WM_COMMAND: | ||
| 138 | +// if (LOWORD(wparam) == IDOK) { | ||
| 139 | +// KillTimer(hdlg, uTimer); | ||
| 140 | +// EndDialog(hdlg, TRUE); | ||
| 141 | +// return TRUE; | ||
| 142 | +// } | ||
| 143 | +// break; | ||
| 144 | +// } | ||
| 145 | +// | ||
| 146 | +// return FALSE; | ||
| 147 | +//} | ||
| 148 | 148 |
| @@ -85,45 +85,40 @@ HISTORY: Date: Author: Comment: | @@ -85,45 +85,40 @@ HISTORY: Date: Author: Comment: | ||
| 85 | -----------------------------------------------------------------------------*/ | 85 | -----------------------------------------------------------------------------*/ |
| 86 | void ErrorReporter(char * szMessage) | 86 | void ErrorReporter(char * szMessage) |
| 87 | { | 87 | { |
| 88 | - char * szFormat = "Error %d: %s.\n\r%s\r\n"; // format for wsprintf | ||
| 89 | - char * szExtended; // error string translated from error code | ||
| 90 | - char * szFinal; // final string to report | ||
| 91 | - DWORD dwExtSize; | ||
| 92 | - DWORD dwErr; | ||
| 93 | - | ||
| 94 | - dwErr = GetLastError(); | ||
| 95 | - | ||
| 96 | - /* | ||
| 97 | - Get error string from system | ||
| 98 | - */ | ||
| 99 | - dwExtSize = ErrorExtender(dwErr, &szExtended); | ||
| 100 | - | ||
| 101 | - /* | ||
| 102 | - allocate buffer for error string from system, passed in string | ||
| 103 | - and extra stuff from the szFormat string | ||
| 104 | - */ | ||
| 105 | - szFinal = LocalAlloc(LPTR, strlen(szMessage) + dwExtSize + 30); | ||
| 106 | - | ||
| 107 | - if (szFinal == NULL) // if no final buffer, then can't format error | ||
| 108 | - MessageBox(ghwndMain, "Cannot properly report error.", "Fatal Error", MB_OK); | ||
| 109 | - else { | ||
| 110 | - wsprintf(szFinal, szFormat, dwErr, szMessage, szExtended); | ||
| 111 | - | ||
| 112 | - OutputDebugString(szFinal); | ||
| 113 | - | ||
| 114 | - if (DISPLAYERRORS(TTYInfo)) | ||
| 115 | - MessageBox(ghwndMain, szFinal, NULL, MB_OK); | ||
| 116 | - | ||
| 117 | - LocalFree(szFinal); // free final buffer | ||
| 118 | - } | 88 | + char * szFormat = "Error %d: %s.\n\r%s\r\n"; // format for wsprintf |
| 89 | + char * szExtended; // error string translated from error code | ||
| 90 | + char * szFinal; // final string to report | ||
| 91 | + DWORD dwExtSize; | ||
| 92 | + DWORD dwErr; | ||
| 93 | + dwErr = GetLastError(); | ||
| 94 | + /* Get error string from system */ | ||
| 95 | + dwExtSize = ErrorExtender(dwErr, &szExtended); | ||
| 96 | + /* allocate buffer for error string from system, passed in string and extra stuff from the szFormat string */ | ||
| 97 | + szFinal = LocalAlloc(LPTR, strlen(szMessage) +dwExtSize + 30); | ||
| 98 | + if (szFinal == NULL) // if no final buffer, then can't format error | ||
| 99 | + { | ||
| 100 | + TTYInfo.rgbBGColor = RGB(255, 50, 50); | ||
| 101 | + OutputABuffer("Cannot properly report error. \r\n"); | ||
| 102 | + //MessageBox(ghwndMain, "Cannot properly report error.", "Fatal Error", MB_OK); | ||
| 103 | + } | ||
| 104 | + else | ||
| 105 | + { | ||
| 106 | + wsprintf(szFinal, szFormat, dwErr, szMessage, szExtended); | ||
| 107 | + OutputDebugString(szFinal); | ||
| 108 | + if (DISPLAYERRORS(TTYInfo)) | ||
| 109 | + { | ||
| 110 | + TTYInfo.rgbBGColor = RGB(255, 50, 50); | ||
| 111 | + OutputABuffer(szFinal); | ||
| 112 | + //MessageBox(ghwndMain, szFinal, NULL, MB_OK); | ||
| 113 | + } | ||
| 114 | + LocalFree(szFinal); // free final buffer | ||
| 115 | + } | ||
| 116 | + /* free extended string buffer */ | ||
| 117 | + LocalFree(szExtended); | ||
| 118 | + return; | ||
| 119 | +} | ||
| 119 | 120 | ||
| 120 | - /* | ||
| 121 | - free extended string buffer | ||
| 122 | - */ | ||
| 123 | - LocalFree(szExtended); | ||
| 124 | 121 | ||
| 125 | - return; | ||
| 126 | -} | ||
| 127 | 122 | ||
| 128 | 123 | ||
| 129 | /*----------------------------------------------------------------------------- | 124 | /*----------------------------------------------------------------------------- |
| @@ -51,11 +51,11 @@ DWORD WaitForThreads( DWORD ); | @@ -51,11 +51,11 @@ DWORD WaitForThreads( DWORD ); | ||
| 51 | */ | 51 | */ |
| 52 | COMMTIMEOUTS gTimeoutsDefault = { 0x01, 0, 0, 0, 0 }; | 52 | COMMTIMEOUTS gTimeoutsDefault = { 0x01, 0, 0, 0, 0 }; |
| 53 | 53 | ||
| 54 | -extern char szFileName[MAX_PATH]; | 54 | +//extern char szFileName[MAX_PATH]; |
| 55 | 55 | ||
| 56 | void oem_init(void) | 56 | void oem_init(void) |
| 57 | { | 57 | { |
| 58 | - memset(szFileName,0,sizeof(szFileName)); | 58 | + //memset(szFileName,0,sizeof(szFileName)); |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | 61 | ||
| @@ -74,8 +74,9 @@ HISTORY: Date: Author: Comment: | @@ -74,8 +74,9 @@ HISTORY: Date: Author: Comment: | ||
| 74 | void GlobalInitialize() | 74 | void GlobalInitialize() |
| 75 | { | 75 | { |
| 76 | int cyMenuHeight, cyCaptionHeight, cyFrameHeight; | 76 | int cyMenuHeight, cyCaptionHeight, cyFrameHeight; |
| 77 | + memset(TTYInfo.szFileName,0,sizeof(TTYInfo.szFileName)); | ||
| 77 | 78 | ||
| 78 | - oem_init(); | 79 | + //oem_init(); |
| 79 | // | 80 | // |
| 80 | // critical sections in status reporting & node management | 81 | // critical sections in status reporting & node management |
| 81 | // | 82 | // |
| @@ -197,7 +198,9 @@ void InitNewFont(LOGFONT LogFont, COLORREF rgbColor) | @@ -197,7 +198,9 @@ void InitNewFont(LOGFONT LogFont, COLORREF rgbColor) | ||
| 197 | LFTTYFONT(TTYInfo) = LogFont; | 198 | LFTTYFONT(TTYInfo) = LogFont; |
| 198 | HTTYFONT(TTYInfo) = CreateFontIndirect(&(LFTTYFONT(TTYInfo))); | 199 | HTTYFONT(TTYInfo) = CreateFontIndirect(&(LFTTYFONT(TTYInfo))); |
| 199 | FGCOLOR(TTYInfo) = rgbColor; | 200 | FGCOLOR(TTYInfo) = rgbColor; |
| 200 | - | 201 | +#if 1//def __TOPWELL_EDIT__ |
| 202 | + TTYInfo.rgbBGColor = RGB(255,255,255); | ||
| 203 | +#endif | ||
| 201 | hDC = GetDC( ghwndMain ) ; | 204 | hDC = GetDC( ghwndMain ) ; |
| 202 | SelectObject( hDC, HTTYFONT( TTYInfo ) ) ; | 205 | SelectObject( hDC, HTTYFONT( TTYInfo ) ) ; |
| 203 | GetTextMetrics( hDC, &tm ) ; | 206 | GetTextMetrics( hDC, &tm ) ; |
| @@ -238,7 +241,7 @@ BOOL InitTTYInfo() | @@ -238,7 +241,7 @@ BOOL InitTTYInfo() | ||
| 238 | LOCALECHO( TTYInfo ) = FALSE ; | 241 | LOCALECHO( TTYInfo ) = FALSE ; |
| 239 | CURSORSTATE( TTYInfo ) = CS_HIDE ; | 242 | CURSORSTATE( TTYInfo ) = CS_HIDE ; |
| 240 | PORT( TTYInfo ) = 1 ; | 243 | PORT( TTYInfo ) = 1 ; |
| 241 | - BAUDRATE( TTYInfo ) = BaudTable[2] ; | 244 | + BAUDRATE( TTYInfo ) = 921600; |
| 242 | BYTESIZE( TTYInfo ) = 8 ; | 245 | BYTESIZE( TTYInfo ) = 8 ; |
| 243 | PARITY( TTYInfo ) = NOPARITY ; | 246 | PARITY( TTYInfo ) = NOPARITY ; |
| 244 | STOPBITS( TTYInfo ) = ONESTOPBIT ; | 247 | STOPBITS( TTYInfo ) = ONESTOPBIT ; |
| @@ -251,22 +254,13 @@ BOOL InitTTYInfo() | @@ -251,22 +254,13 @@ BOOL InitTTYInfo() | ||
| 251 | COLUMN( TTYInfo ) = 0 ; | 254 | COLUMN( TTYInfo ) = 0 ; |
| 252 | ROW( TTYInfo ) = MAXROWS - 1 ; | 255 | ROW( TTYInfo ) = MAXROWS - 1 ; |
| 253 | DISPLAYERRORS( TTYInfo ) = TRUE ; | 256 | DISPLAYERRORS( TTYInfo ) = TRUE ; |
| 254 | - | ||
| 255 | - // | ||
| 256 | // timeouts | 257 | // timeouts |
| 257 | - // | ||
| 258 | TIMEOUTSNEW( TTYInfo ) = gTimeoutsDefault; | 258 | TIMEOUTSNEW( TTYInfo ) = gTimeoutsDefault; |
| 259 | - | ||
| 260 | - // | ||
| 261 | // read state and status events | 259 | // read state and status events |
| 262 | - // | ||
| 263 | gdwReceiveState = RECEIVE_TTY; | 260 | gdwReceiveState = RECEIVE_TTY; |
| 264 | EVENTFLAGS( TTYInfo ) = EVENTFLAGS_DEFAULT; | 261 | EVENTFLAGS( TTYInfo ) = EVENTFLAGS_DEFAULT; |
| 265 | FLAGCHAR( TTYInfo ) = FLAGCHAR_DEFAULT; | 262 | FLAGCHAR( TTYInfo ) = FLAGCHAR_DEFAULT; |
| 266 | - | ||
| 267 | - // | ||
| 268 | // Flow Control Settings | 263 | // Flow Control Settings |
| 269 | - // | ||
| 270 | DTRCONTROL( TTYInfo ) = DTR_CONTROL_ENABLE; | 264 | DTRCONTROL( TTYInfo ) = DTR_CONTROL_ENABLE; |
| 271 | RTSCONTROL( TTYInfo ) = RTS_CONTROL_ENABLE; | 265 | RTSCONTROL( TTYInfo ) = RTS_CONTROL_ENABLE; |
| 272 | XONCHAR( TTYInfo ) = ASCII_XON; | 266 | XONCHAR( TTYInfo ) = ASCII_XON; |
| @@ -285,10 +279,7 @@ BOOL InitTTYInfo() | @@ -285,10 +279,7 @@ BOOL InitTTYInfo() | ||
| 285 | NOEVENTS(TTYInfo) = FALSE; | 279 | NOEVENTS(TTYInfo) = FALSE; |
| 286 | NOSTATUS(TTYInfo) = FALSE; | 280 | NOSTATUS(TTYInfo) = FALSE; |
| 287 | SHOWTIMEOUTS(TTYInfo) = FALSE; | 281 | SHOWTIMEOUTS(TTYInfo) = FALSE; |
| 288 | - | ||
| 289 | - // | ||
| 290 | // setup default font information | 282 | // setup default font information |
| 291 | - // | ||
| 292 | LFTTYFONT( TTYInfo ).lfHeight = 20 ; | 283 | LFTTYFONT( TTYInfo ).lfHeight = 20 ; |
| 293 | LFTTYFONT( TTYInfo ).lfWidth = 0 ; | 284 | LFTTYFONT( TTYInfo ).lfWidth = 0 ; |
| 294 | LFTTYFONT( TTYInfo ).lfEscapement = 0 ; | 285 | LFTTYFONT( TTYInfo ).lfEscapement = 0 ; |
| @@ -302,6 +293,7 @@ BOOL InitTTYInfo() | @@ -302,6 +293,7 @@ BOOL InitTTYInfo() | ||
| 302 | LFTTYFONT( TTYInfo ).lfClipPrecision = CLIP_DEFAULT_PRECIS ; | 293 | LFTTYFONT( TTYInfo ).lfClipPrecision = CLIP_DEFAULT_PRECIS ; |
| 303 | LFTTYFONT( TTYInfo ).lfQuality = DEFAULT_QUALITY ; | 294 | LFTTYFONT( TTYInfo ).lfQuality = DEFAULT_QUALITY ; |
| 304 | LFTTYFONT( TTYInfo ).lfPitchAndFamily = FIXED_PITCH | FF_MODERN ; | 295 | LFTTYFONT( TTYInfo ).lfPitchAndFamily = FIXED_PITCH | FF_MODERN ; |
| 296 | + TTYInfo.DownloadReday = FALSE; | ||
| 305 | strcpy( LFTTYFONT( TTYInfo ).lfFaceName, "FixedSys" ) ; | 297 | strcpy( LFTTYFONT( TTYInfo ).lfFaceName, "FixedSys" ) ; |
| 306 | // strcpy( LFTTYFONT( TTYInfo ).lfFaceName, "Courier New" ) ; | 298 | // strcpy( LFTTYFONT( TTYInfo ).lfFaceName, "Courier New" ) ; |
| 307 | 299 | ||
| @@ -347,7 +339,7 @@ void StartThreads(void) | @@ -347,7 +339,7 @@ void StartThreads(void) | ||
| 347 | CreateThread( NULL, | 339 | CreateThread( NULL, |
| 348 | 0, | 340 | 0, |
| 349 | (LPTHREAD_START_ROUTINE) ReaderAndStatusProc, | 341 | (LPTHREAD_START_ROUTINE) ReaderAndStatusProc, |
| 350 | - (LPVOID) ghWndTTY, | 342 | + (LPVOID) ghWndMessage, |
| 351 | 0, | 343 | 0, |
| 352 | &dwReadStatId); | 344 | &dwReadStatId); |
| 353 | 345 | ||
| @@ -392,15 +384,10 @@ HANDLE SetupCommPort() | @@ -392,15 +384,10 @@ HANDLE SetupCommPort() | ||
| 392 | // | 384 | // |
| 393 | // open communication port handle | 385 | // open communication port handle |
| 394 | // | 386 | // |
| 395 | - COMDEV( TTYInfo ) = CreateFile( gszPort, | ||
| 396 | - GENERIC_READ | GENERIC_WRITE, | ||
| 397 | - 0, | ||
| 398 | - 0, | ||
| 399 | - OPEN_EXISTING, | ||
| 400 | - FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, | ||
| 401 | - 0); | 387 | + COMDEV( TTYInfo ) = CreateFile( gszPort, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, 0); |
| 402 | 388 | ||
| 403 | - if (COMDEV(TTYInfo) == INVALID_HANDLE_VALUE) { | 389 | + if (COMDEV(TTYInfo) == INVALID_HANDLE_VALUE) |
| 390 | + { | ||
| 404 | ErrorReporter("CreateFile"); | 391 | ErrorReporter("CreateFile"); |
| 405 | return NULL; | 392 | return NULL; |
| 406 | } | 393 | } |
| @@ -436,6 +423,7 @@ HANDLE SetupCommPort() | @@ -436,6 +423,7 @@ HANDLE SetupCommPort() | ||
| 436 | // set overall connect flag | 423 | // set overall connect flag |
| 437 | // | 424 | // |
| 438 | CONNECTED( TTYInfo ) = TRUE ; | 425 | CONNECTED( TTYInfo ) = TRUE ; |
| 426 | + OutputAclorBuffer("open COM sucess!\r\n",RGB(255, 255, 255)); | ||
| 439 | 427 | ||
| 440 | return COMDEV(TTYInfo); | 428 | return COMDEV(TTYInfo); |
| 441 | } | 429 | } |
| @@ -595,3 +583,281 @@ BOOL DisconnectOK() | @@ -595,3 +583,281 @@ BOOL DisconnectOK() | ||
| 595 | 583 | ||
| 596 | return ((MessageBox(ghwndMain, "OK to Disconnect?", gszPort, MB_YESNO)) == IDYES); | 584 | return ((MessageBox(ghwndMain, "OK to Disconnect?", gszPort, MB_YESNO)) == IDYES); |
| 597 | } | 585 | } |
| 586 | +/*----------------------------------------------------------------------------- | ||
| 587 | +FUNCTION: QuerySingleSerialPortEx | ||
| 588 | + | ||
| 589 | +PURPOSE: 查询指定端口状态 | ||
| 590 | +-----------------------------------------------------------------------------*/ | ||
| 591 | + | ||
| 592 | + | ||
| 593 | +BOOL QuerySingleSerialPortEx(int nPort) | ||
| 594 | +{ | ||
| 595 | + char strComm[50]; | ||
| 596 | + BOOL bValid = TRUE; | ||
| 597 | + HANDLE hComm; | ||
| 598 | + int nError; | ||
| 599 | + | ||
| 600 | + | ||
| 601 | + sprintf(strComm,"COM%d",nPort); | ||
| 602 | + if (nPort >= 10) | ||
| 603 | + {//微软的技术手册规定打开端口号大于9的串口时应该使用"\\.\COM10"格式的文件名,更多的信息请参考msdn。 | ||
| 604 | + sprintf(strComm,"\\\\.\\COM%d",nPort); | ||
| 605 | + } | ||
| 606 | + | ||
| 607 | + hComm = CreateFile(strComm,GENERIC_READ | GENERIC_WRITE,0,NULL,\ | ||
| 608 | + OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL| FILE_FLAG_OVERLAPPED, NULL); | ||
| 609 | + nError = GetLastError(); | ||
| 610 | + | ||
| 611 | + if(INVALID_HANDLE_VALUE == hComm) | ||
| 612 | + {//***********如果没有该设备,或者被其他应用程序占用******** | ||
| 613 | + if(2 == nError) | ||
| 614 | + bValid = -1; | ||
| 615 | + else if(5 == nError) | ||
| 616 | + bValid = FALSE; | ||
| 617 | + else | ||
| 618 | + bValid = FALSE; | ||
| 619 | + } | ||
| 620 | + CloseHandle(hComm); //重要 关闭文件句柄 = 关闭串口 | ||
| 621 | + return bValid; | ||
| 622 | +} | ||
| 623 | + | ||
| 624 | + | ||
| 625 | +/*----------------------------------------------------------------------------- | ||
| 626 | +FUNCTION: QuerySingleSerialPortEx | ||
| 627 | + | ||
| 628 | +PURPOSE: 查询指定范围端口状态 | ||
| 629 | +利用API查询指定范围内的串口状态信息,并分别返回指定范围内系统存在的串口, | ||
| 630 | +当前未被占用的可用串口,已被占用的串口和系统不存在的串口 | ||
| 631 | +*/ | ||
| 632 | + | ||
| 633 | +void QuerySerialPortStatusEx(int *AryNoneOpenedPort,int nStartPort,int nLastPort) | ||
| 634 | +{ | ||
| 635 | + char strTmp[50],strComm[50],strFree[50]; | ||
| 636 | + int n1 = nStartPort,n2=nLastPort,i,loop = 0; | ||
| 637 | + HANDLE hComm; | ||
| 638 | + int nLastError; | ||
| 639 | + //对输入的参数进行检查 | ||
| 640 | + if(nStartPort < 1) nStartPort = 1; | ||
| 641 | + if(nStartPort > 65535) nStartPort = 65535; | ||
| 642 | + if(nLastPort < 1) nLastPort = 1; | ||
| 643 | + if(nLastPort > 65535) nLastPort = 65535; | ||
| 644 | + nStartPort = min(n1,n2); | ||
| 645 | + nLastPort = max(n1,n2); | ||
| 646 | + memset(AryNoneOpenedPort,0,255); | ||
| 647 | + | ||
| 648 | + | ||
| 649 | + for (i = nStartPort;i<=nLastPort;i++) | ||
| 650 | + { | ||
| 651 | + sprintf(strComm,"COM%d",i); | ||
| 652 | + if (i >= 10) | ||
| 653 | + {//微软的技术手册规定打开端口号大于9的串口时应该使用"\\.\COM10"格式的文件名,更多的信息请参考msdn。 | ||
| 654 | + sprintf(strComm,"\\\\.\\COM%d",i); | ||
| 655 | + } | ||
| 656 | + // 这里的CreateFile函数起了很大的作用,可以用来创建系统设备文件,如果该设备不存在或者被占用,则会返回一个错误,即下面的 INVALID_HANDLE_VALUE ,据此可以判断可使用性。详细参见MSDN中的介绍。 | ||
| 657 | + hComm = CreateFile(strComm,GENERIC_READ | GENERIC_WRITE,0,NULL,\ | ||
| 658 | + OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL| FILE_FLAG_OVERLAPPED, NULL); | ||
| 659 | + nLastError = GetLastError(); | ||
| 660 | + //strComm.TrimLeft("\\\\.\\"); | ||
| 661 | + | ||
| 662 | + if(hComm != INVALID_HANDLE_VALUE) | ||
| 663 | + {//串口存在且未被占用 | ||
| 664 | + AryNoneOpenedPort[loop] = i; | ||
| 665 | + loop++; | ||
| 666 | + } | ||
| 667 | + CloseHandle(hComm); //关闭文件句柄 - 必要 | ||
| 668 | + } | ||
| 669 | + | ||
| 670 | +} | ||
| 671 | + | ||
| 672 | + | ||
| 673 | +/* | ||
| 674 | +代码说明 | ||
| 675 | +EscapeCommFunction()函数 | ||
| 676 | +指示指定的通信设备执行扩展功能。 | ||
| 677 | +BOOL EscapeCommFunction( | ||
| 678 | + HANDLE hFile, //通信设备的句柄 | ||
| 679 | + DWORD dwFunc //指定执行的功能 | ||
| 680 | +); | ||
| 681 | +hFile:串行端口的Handle值,此值即为使用createFile函数后所返回的值。 | ||
| 682 | +dwFunc:指定串行端口必须完成的工作,由以下的常数数值组成: | ||
| 683 | +CLRDTR:将DTR线路降成低电位。 | ||
| 684 | +CLRRTS:将RTS线路降成低电位 | ||
| 685 | +SETDTR:将DT&线路升成高电位。 | ||
| 686 | +SETRTS:RTS线路升成高电位 | ||
| 687 | +SETXOFF:当接收到Xoff字符时启动传输操作。 | ||
| 688 | +SETXON:当接收到Xon字符时启动传蝓作。 | ||
| 689 | +SETBREAK:没置道信状态为中断(送出Break信号)。 | ||
| 690 | +CLRBREAK:清除 Break信号,使传输动作继续。 | ||
| 691 | +请特别注意到上述的参数,包有DTR、RTS的线路控制指令,如果要个别地控制这两条线路的高低电位状态就需要硬用这个函数。 | ||
| 692 | + | ||
| 693 | + | ||
| 694 | + | ||
| 695 | +GetCommState()函数功能,使用指定通信设备的当前控制设置填充设备控制块(DCB结构) | ||
| 696 | +BOOL GetCommState( HANDLE hFile, LPDCB lpDCB ); | ||
| 697 | +参数 | ||
| 698 | +hFile [in]由CreateFile函数返回的通信设备句柄。 | ||
| 699 | +lpDCB [out]指向返回控制设置数据的DCB结构的长指针。 | ||
| 700 | +typedef struct _DCB { //DCB结构声明 | ||
| 701 | + DWORD DCBlength; DCB结构的长度 | ||
| 702 | + DWORD BaudRate; 当前波特率 | ||
| 703 | + DWORD fBinary: 1; 二进制模式,无EOF检查 | ||
| 704 | + DWORD fParity: 1; 激活奇偶校验检查 | ||
| 705 | + DWORD fOutxCtsFlow:1; CTS输出流量控制 | ||
| 706 | + DWORD fOutxDsrFlow:1; DSR输出流量控制 | ||
| 707 | + DWORD fDtrControl:2; DTR流量控制类型 | ||
| 708 | + DWORD fDsrSensitivity:1; DSR安全设置 | ||
| 709 | + DWORD fTXContinueOnXoff: 1; XOFF持续Tx | ||
| 710 | + DWORD fOutX: 1; XON/XOFF输出流量控制 | ||
| 711 | + DWORD fInX: 1; XON/XOFF输出流量控制 | ||
| 712 | + DWORD fErrorChar: 1; 激活错误替换机制 | ||
| 713 | + DWORD fNull: 1; 允许舍空格 | ||
| 714 | + DWORD fRtsControl:2; Rts流量控制 | ||
| 715 | + DWORD fAbortOnError:1; 有错误时放弃读/写 | ||
| 716 | + DWORD fDummy2:17; 保留 | ||
| 717 | + WORD wReserved; 现在不使用 | ||
| 718 | + WORD XonLim; 传送XON阀值 | ||
| 719 | + WORD XoffLim; 传送XOFF阀值 | ||
| 720 | + BYTE ByteSize; 每个字节的位数 4-8 | ||
| 721 | + BYTE Parity; 校验 0-4=None,Odd,Even,Mark,Space | ||
| 722 | + BYTE StopBits; 0,1,2 = 1, 1.5, 2 | ||
| 723 | + char XonChar; 设置Tx和Rx的XON的字符 | ||
| 724 | + char XoffChar; 设置Tx和Rx的XOFF字符 | ||
| 725 | + char ErrorChar; 有错误时的替换字符 | ||
| 726 | + char EofChar; 表示输入结束的字符 | ||
| 727 | + char EvtChar; 接收事件字符 | ||
| 728 | + WORD wReserved1; 保留未使用 | ||
| 729 | +} DCB, *LPDCB; | ||
| 730 | + | ||
| 731 | +DCB结构中重要参数说明如下: | ||
| 732 | + | ||
| 733 | +Baudrate:串行端口的传输速度 | ||
| 734 | +fBinary:是否采用二进制方式发送数据,若设为1,表示采用二进制方式,占 一个位。由于win32只支持二进制的方式,故此值必须设置为1. | ||
| 735 | +fParity:是否启动奇偶校验位检查,若设为1,表示采用奇偶校验位检查。此标志占一个位。 | ||
| 736 | +fOutxCtsFlow:是否采用CTS硬件流量控制。当此值设为1,而CTS引脚为底电位时,数据发送将暂停,直到CTS引脚升至高电位。占一个位。 | ||
| 737 | +fOutDsrFlow:是否采用DSR硬件流量控制。当此值设为1,而DSR引脚为低电位时,数据发送将暂停,直到DSR引脚升至高电位,占一个位。 | ||
| 738 | +fDtrControl:是否采用DTR硬件流量控制。可设为DTR_CONTROL_DISABLE(串行端口打开后设为低电位)、DTR_CONTROL_ENABLE( 串行端口打开后设为高电位)DTR_CONTROL_HANDSHAKE(启动硬件流量控制)三者之一,其常数定义数值分别是0、1、2。此标志占两个位。 | ||
| 739 | +fDsrSensitivity:当成True时,当DSR引脚被提升至高电位之前,串行端口将忽略任何被收到的数据。此标志占一个位的位置。 | ||
| 740 | +ftOutX:发送过程是否启用软件握手(XON_XOFF)。当设成1时,发送过程收到XOFF字符时停上发送,而收到XON字符时恢复发送。此标志占一个位的位置。 | ||
| 741 | +fInX:发送过程是否后用软件握手(XON-XOFF),当设成1时,接收过程若超过设置值(XoffLim参数决定),则送出XOFF字符:而低于设置值时(Xonlim参数决定)送出XON字符。此标志占一个位的位置。 | ||
| 742 | +fNuil:接收过程是否舍弃空格符。若设成1则于接收过程将自动去掉空格符。此标志占一个位的位置。 | ||
| 743 | +fRtsControl:是否启动RTS硬件流控制。可设为RTS_CONTROL_DISABLE(串行端凵打丌后设为低电位)、RTS_CONTROL_ENABLE(串行端口打开后设为高电位)、RTS_CONTROL_HANDSHAKE(启动硬件流量控制)、 | ||
| 744 | +RTSCONTROLTOGGLE(指示发过程的进行状态)四者之一,其常数是0、1、2、3。此标志占两个位的位置。 | ||
| 745 | +XonLim:设置发送XON字符时,输入缓冲区中的最小字节数 | ||
| 746 | +XoffLim:设置发送XOFF字符时,输入缓冲区中的最大字节数 | ||
| 747 | +ByteSize:设置数据位数。有5、6、7、8可以设置。 | ||
| 748 | +Parity:设置校验位检查的种类。有None、Even、Odd三种 | ||
| 749 | +StopBits:设置停止位数。有1、1.5、2三种 | ||
| 750 | +XonChar:设置XON字符 | ||
| 751 | +XoffChar:设置XOFF字符 | ||
| 752 | + | ||
| 753 | + | ||
| 754 | +SetCommState()函数 | ||
| 755 | +SetCommState()函数设置串行端口状态。如设置串口设置(波特率,校验,停止位,数据位等). | ||
| 756 | +SetCommState()函数原型: | ||
| 757 | +BOOL SetCommState( HANDLE hFile, LPDCB lpDCB ); | ||
| 758 | +hFile:串行端口的Handle值,此值即为使用CreateFile函数后返回的值。 | ||
| 759 | +lpDCB:设备控制块(Device Control Block, DCB)结构,将指定后的DCB结构传入。 | ||
| 760 | + | ||
| 761 | + | ||
| 762 | +WriteFile()函数 | ||
| 763 | +WriteFile函数,可以将数据写入一个文件或者I/O设备。该函数比fwrite函数要灵活的多,也可将这个函数应用于对通信设备、管道、套接字以及邮槽的处理。 | ||
| 764 | +windows将串行端口当成文件来使用,因此写入串行端口数据的函数也是WriteFile。 | ||
| 765 | +WriteFile()函数原型: | ||
| 766 | +BOOL WriteFile( HANDLE hFile,//文件句柄 | ||
| 767 | + LPCVOID lpBuffer,//数据缓存区指针 | ||
| 768 | + DWORD nNumberOfBytesToWrite,//要写的字节数 | ||
| 769 | + LPDWORD lpNumberOfBytesWritten,//用于保存实际写入字节数的存储区域的指针 | ||
| 770 | + LPOVERLAPPED lpOverlapped//OVERLAPPED结构体指针 | ||
| 771 | +); | ||
| 772 | +hFile:串行端口的Handle值,句柄 | ||
| 773 | +lpBuffer:指向欲发送的数据 | ||
| 774 | +nNumberOfBytesToWrite:写入的字节数 | ||
| 775 | +lpNumberOfBytesWritten:指向被写入的字节数的变量地址 | ||
| 776 | +lpOverlapped:指向overlapped I/O的结构地址,通常用来作背景工作时同步检查用,在串行通信中若不使用异步传输,则可不使用,设成NULL即可。 | ||
| 777 | + | ||
| 778 | + | ||
| 779 | +ReadFile()函数 | ||
| 780 | +从文件中读出数据。与fread函数相比,这个函数要明显灵活的多。该函数能够操作通信设备、管道、套接字以及邮槽。 | ||
| 781 | +windows将串行端口的使用当成文件,因此读取串行端口数据的函数亦使用读文件函数ReadFile. | ||
| 782 | +ReadFile()函数原型: | ||
| 783 | +BOOL ReadFile( | ||
| 784 | + HANDLE hFile, //文件的句柄 | ||
| 785 | + LPVOID lpBuffer, //接收数据的缓冲区 | ||
| 786 | + DWORD nNumberOfBytesToRead, //读取的字节数 | ||
| 787 | + LPDWORD lpNumberOfBytesRead, //指向实际读取字节数的指针 | ||
| 788 | + LPOVERLAPPED lpOverlapped | ||
| 789 | + //如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须,用这个参数引用一个特殊的结构。 | ||
| 790 | + //该结构定义了一次异步读取操作。否则,应将这个参数设为NULL | ||
| 791 | +); | ||
| 792 | +ReadFile()函数参数说明: | ||
| 793 | +hFile:串行端口的Handle值, | ||
| 794 | +lpBuffer:指向存储被读取数据的地址 | ||
| 795 | +nNumberOfBytesToRead:准备读取的数据字节数 | ||
| 796 | +lpNumberOfBytesRead:准备读取字节数的指针 | ||
| 797 | +lpOverlapped:指向overlapped I/O的结构地址,在串行通信中若不同时进行后台工作,则可不使用,设成NULL即可。 | ||
| 798 | + | ||
| 799 | + | ||
| 800 | +ClearCommError()函数 | ||
| 801 | +清除串行端口错误或读取串行端口现在的状态时,可用函数ClearCommError。Windows系统利用此函数清除硬件的通讯错误以及获取通讯设备的当前状态 | ||
| 802 | +ClearCommError()函数原型 | ||
| 803 | +BOOL ClearCommError( HANDLE hFile, //通信设备的句柄 | ||
| 804 | + LPDWORD lpErrors,//接收错误代码变量的指针 | ||
| 805 | + LPCOMSTAT lpStat //通信状态缓冲区的指针 | ||
| 806 | +); | ||
| 807 | +ClearCommError()函数参数说明: | ||
| 808 | +hFile:串行端冂的Handle值,此值即为使用CreateFile函数后所返回的值。 | ||
| 809 | +lpError:返回错误数值,错误常数如下: | ||
| 810 | +CE_BREAK:检测到中断信号。 | ||
| 811 | +CE_DNS:Windows95专用,未被选择的并行端口。 | ||
| 812 | +CE_FRAME:硬件检到框架错误 | ||
| 813 | +CE_IOE:通信设备发生输入/输出綹误, | ||
| 814 | +CE_MODE:设置模式错误,或是hFile值错误。 | ||
| 815 | +CE_OOP:Wmdows95专用,并行端口发生缺纸错误。CE_OVERRUN:缓冲区容量不足,数据将遗失。 | ||
| 816 | +CE_PTO:Windows95专用,并行端口发生超时错误。 | ||
| 817 | +CE_RXOVER:接收区满溢或在文件结尾被接收到后仍有数据发送过来。 | ||
| 818 | +CE_RXPARITY:硬件检测到校验位检查错误。 | ||
| 819 | +CE_TXFULL:发送缓存区已满后,应用程序仍要发送数据。 | ||
| 820 | +lpStat:指向通信端口状态的结构变量。此结构的原始声明如下: | ||
| 821 | +typedef struct _COMSTAT { //cst | ||
| 822 | + DWORD fCtsHold : 1; //Tx正在等待CTS信号 | ||
| 823 | + DWORD fDsrHold : 1; //Tx正在等待DSR信号 | ||
| 824 | + DWORD fRlsdHold : 1; //Tx正在等待RLSD信号 | ||
| 825 | + DWORD fXoffHold : 1; //Tx由于接收XOFF字符而在等待 | ||
| 826 | + DWORD fXoffSent : 1; //Tx由于发送XOFF字符而在等待 | ||
| 827 | + DWORD fEof : 1; //发送EOF字符 | ||
| 828 | + DWORD fTxim : 1; //字符在等待Tx | ||
| 829 | + DWORD fReserved : 25; //保留 | ||
| 830 | + DWORD cbInQue; //输入缓冲区中的字节数 | ||
| 831 | + DWORD cbOutQue; //输出缓冲区中的字节数 | ||
| 832 | +} COMSTAT, *LPCOMSTAT; | ||
| 833 | +此结构屮有关参数说明如下: | ||
| 834 | +fCtsHold:是否正在等待CTS信号。占一个位的位置。 | ||
| 835 | +fDsrHold:是否正在等待DSR信号。占一个位的位置。 | ||
| 836 | +fRlsdHoId:是否正在等待RLSD信号。占一个位的位置。 | ||
| 837 | +fXoftHoId:是否因收到xoff字符而在等待。占一个位的位置。 | ||
| 838 | +fXoffHold:是否因送出xoff字符而使得发送的动作在等待。占一个位置 | ||
| 839 | +cbInQue:在输入缓冲区尚未被ReadFile函数读取的数据字节数。这个参数经常被用来进行状态检查。 | ||
| 840 | +cbOutQue:在发送缓冲区而尚未被发送的据字节数 | ||
| 841 | + | ||
| 842 | + | ||
| 843 | +WaitForMultipleObjects 是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象 | ||
| 844 | + | ||
| 845 | +PurgeComm()函数 | ||
| 846 | +PurgeComm()函数–清空缓冲区 | ||
| 847 | +BOOL PurgeComm( HANDLE hFile, DWORD dwFlags ); | ||
| 848 | +hFile | ||
| 849 | +[in]处理通信资源。该的CreateFile函数返回该句柄。 | ||
| 850 | +dwFlags | ||
| 851 | +[in]指定要采取的操作。下表显示了可能的值。 | ||
| 852 | +PURGE_TXABORT 终止所有正在进行的字符输出操作,完成一个正处于等待状态的重叠i/o操作,他将产生一个事件,指明完成了写操作 | ||
| 853 | +PURGE_RXCLEAR 终止所有正在进行的字符输入操作,完成一个正在进行中的重叠i/o操作,并带有已设置得适当事件 | ||
| 854 | +PURGE_TXABORT 这个命令指导设备驱动程序清除输出缓冲区,经常与PURGE_TXABORT 命令标志一起使用 | ||
| 855 | +PURGE_RXCLEAR 这个命令用于设备驱动程序清除输入缓冲区,经常与PURGE_RXABORT 命令标志一起使用 | ||
| 856 | + | ||
| 857 | + | ||
| 858 | + | ||
| 859 | + | ||
| 860 | + | ||
| 861 | + | ||
| 862 | + | ||
| 863 | +*/ |
| @@ -46,7 +46,7 @@ BOOL ScrollTTYHorz( HWND, WORD, WORD ); | @@ -46,7 +46,7 @@ BOOL ScrollTTYHorz( HWND, WORD, WORD ); | ||
| 46 | BOOL VersionCheck(); | 46 | BOOL VersionCheck(); |
| 47 | BOOL PaintTTY( HWND ); | 47 | BOOL PaintTTY( HWND ); |
| 48 | 48 | ||
| 49 | -char szFileName[MAX_PATH]; | 49 | +//char szFileName[MAX_PATH]; |
| 50 | 50 | ||
| 51 | /*----------------------------------------------------------------------------- | 51 | /*----------------------------------------------------------------------------- |
| 52 | 52 | ||
| @@ -160,6 +160,7 @@ BOOL InitializeApp(HINSTANCE hInst, int nShowCmd) | @@ -160,6 +160,7 @@ BOOL InitializeApp(HINSTANCE hInst, int nShowCmd) | ||
| 160 | GlobalCleanup(); | 160 | GlobalCleanup(); |
| 161 | return FALSE; | 161 | return FALSE; |
| 162 | } | 162 | } |
| 163 | + QuerySerialPortStatusEx(TTYInfo.unOpenedPortAry,2,255); | ||
| 163 | 164 | ||
| 164 | // | 165 | // |
| 165 | // setup program's tty child window class | 166 | // setup program's tty child window class |
| @@ -244,7 +245,7 @@ int WINAPI MTTTYWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) | @@ -244,7 +245,7 @@ int WINAPI MTTTYWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) | ||
| 244 | DestroyTTYInfo(); | 245 | DestroyTTYInfo(); |
| 245 | DestroyWindow(ghWndToolbarDlg); | 246 | DestroyWindow(ghWndToolbarDlg); |
| 246 | DestroyWindow(ghWndStatusDlg); | 247 | DestroyWindow(ghWndStatusDlg); |
| 247 | - DestroyWindow(ghWndTTY); | 248 | + DestroyWindow(ghWndMessage); |
| 248 | 249 | ||
| 249 | GlobalCleanup(); | 250 | GlobalCleanup(); |
| 250 | PostQuitMessage(0); | 251 | PostQuitMessage(0); |
| @@ -271,35 +272,8 @@ int WINAPI MTTTYWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) | @@ -271,35 +272,8 @@ int WINAPI MTTTYWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) | ||
| 271 | 272 | ||
| 272 | case WM_SIZE: | 273 | case WM_SIZE: |
| 273 | { | 274 | { |
| 274 | - // | ||
| 275 | - // main window size has changed, | ||
| 276 | - // so I need to change the positions of child windows | ||
| 277 | - // | ||
| 278 | - WORD wTop; | ||
| 279 | - WORD wHeight; | ||
| 280 | - WORD wWidth = LOWORD(lParam); | ||
| 281 | - | ||
| 282 | - // | ||
| 283 | - // put Settings window at top | ||
| 284 | - // | ||
| 285 | - wHeight = SETTINGSFACTOR*gwBaseY; | ||
| 286 | - wTop = 0; | ||
| 287 | - MoveWindow(ghWndToolbarDlg, 0,wTop, wWidth, wHeight, TRUE); | ||
| 288 | - | ||
| 289 | - // | ||
| 290 | - // put Status window at bottom | ||
| 291 | - // | ||
| 292 | - wHeight = STATUSFACTOR*gwBaseY; | ||
| 293 | - wTop = HIWORD(lParam) - wHeight; | ||
| 294 | - MoveWindow(ghWndStatusDlg, 0, wTop, wWidth, wHeight, TRUE); | ||
| 295 | - | ||
| 296 | - // | ||
| 297 | - // put TTTY window right in the middle | ||
| 298 | - // height = whole window - height of two previous windows | ||
| 299 | - // | ||
| 300 | - wHeight = HIWORD(lParam) - ((STATUSFACTOR + SETTINGSFACTOR)*gwBaseY); | ||
| 301 | - wTop = SETTINGSFACTOR*gwBaseY; | ||
| 302 | - MoveWindow(ghWndTTY, 0, wTop, wWidth, wHeight, TRUE); | 275 | + //主窗口大小已经改变,,所以我需要改变子窗口的位置 |
| 276 | + ResizeAllWindow(LOWORD(lParam),HIWORD(lParam)); | ||
| 303 | } | 277 | } |
| 304 | 278 | ||
| 305 | break; | 279 | break; |
| @@ -309,8 +283,8 @@ int WINAPI MTTTYWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) | @@ -309,8 +283,8 @@ int WINAPI MTTTYWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) | ||
| 309 | break; | 283 | break; |
| 310 | 284 | ||
| 311 | case WM_CHAR: | 285 | case WM_CHAR: |
| 312 | - SetFocus(ghWndTTY); | ||
| 313 | - SendMessage(ghWndTTY, WM_CHAR, wParam, lParam); | 286 | + SetFocus(ghWndMessage); |
| 287 | + SendMessage(ghWndMessage, WM_CHAR, wParam, lParam); | ||
| 314 | break; | 288 | break; |
| 315 | 289 | ||
| 316 | case WM_CLOSE: | 290 | case WM_CLOSE: |
| @@ -357,119 +331,71 @@ void CmdDispatch(int iMenuChoice, HWND hwnd, LPARAM lParam) | @@ -357,119 +331,71 @@ void CmdDispatch(int iMenuChoice, HWND hwnd, LPARAM lParam) | ||
| 357 | 331 | ||
| 358 | switch (iMenuChoice) | 332 | switch (iMenuChoice) |
| 359 | { | 333 | { |
| 360 | - case ID_HELP_ABOUTMTTTY: | ||
| 361 | - CmdAbout(hwnd); | ||
| 362 | - break; | ||
| 363 | - | ||
| 364 | - case ID_TRANSFER_SENDFILETEXT: | ||
| 365 | - { | ||
| 366 | - char * szFilter = "bin Files\0*.bin\0"; | ||
| 367 | - OPENFILENAME ofn = {0}; | ||
| 368 | - | ||
| 369 | - ofn.lStructSize = sizeof(OPENFILENAME); | ||
| 370 | - ofn.hwndOwner = hwnd; | ||
| 371 | - ofn.lpstrFilter = szFilter; | ||
| 372 | - ofn.lpstrFile = szFileName; | ||
| 373 | - ofn.nMaxFile = MAX_PATH; | ||
| 374 | - ofn.lpstrTitle = "Select file"; | ||
| 375 | - ofn.Flags = OFN_FILEMUSTEXIST; | ||
| 376 | - | ||
| 377 | - if (!GetOpenFileName(&ofn)) | ||
| 378 | - break; | ||
| 379 | - | ||
| 380 | - UpdateStatus(szFileName); | ||
| 381 | - //if (TRUE) | ||
| 382 | - // TransferFileTextStart(szFileName); | ||
| 383 | - } | ||
| 384 | - break; | 334 | + //case ID_HELP_ABOUTMTTTY: |
| 335 | + // CmdAbout(hwnd); | ||
| 336 | + // break; | ||
| 385 | 337 | ||
| 338 | + case ID_TRANSFER_SENDFILETEXT: | ||
| 339 | + break; | ||
| 386 | case ID_TRANSFER_RECEIVEFILETEXT: | 340 | case ID_TRANSFER_RECEIVEFILETEXT: |
| 387 | - { | ||
| 388 | - char * szFilter = "Text Files\0*.TXT\0"; | ||
| 389 | - OPENFILENAME ofn = {0}; | ||
| 390 | - | ||
| 391 | - ofn.lStructSize = sizeof(OPENFILENAME); | ||
| 392 | - ofn.hwndOwner = hwnd; | ||
| 393 | - ofn.lpstrFilter = szFilter; | ||
| 394 | - ofn.lpstrFile = szFileName; | ||
| 395 | - ofn.nMaxFile = MAX_PATH; | ||
| 396 | - ofn.lpstrTitle = "Receive File"; | ||
| 397 | - ofn.Flags = OFN_OVERWRITEPROMPT; | ||
| 398 | - | ||
| 399 | - if (!GetSaveFileName(&ofn)) | ||
| 400 | - break; | ||
| 401 | - | ||
| 402 | - ReceiveFileText(szFileName); | ||
| 403 | - } | ||
| 404 | break; | 341 | break; |
| 405 | 342 | ||
| 406 | case ID_TRANSFER_ABORTSENDING: | 343 | case ID_TRANSFER_ABORTSENDING: |
| 407 | // was abort sent from the abort button? | 344 | // was abort sent from the abort button? |
| 408 | - if (LOWORD(lParam) == IDC_ABORTBTN) { | ||
| 409 | - // am I in a transfer repeat? | ||
| 410 | - if (REPEATING(TTYInfo)) | ||
| 411 | - TransferRepeatDestroy(); | ||
| 412 | - // am I in a normal recieve state, then stop sending | ||
| 413 | - else if (gdwReceiveState == RECEIVE_TTY) | ||
| 414 | - TransferFileTextEnd(); | ||
| 415 | - // if I am not in a normal receive state, then stop capturing | ||
| 416 | - else | ||
| 417 | - gfAbortTransfer = TRUE; | ||
| 418 | - } | ||
| 419 | - else | ||
| 420 | - // transfer abort was sent by transfer thread | ||
| 421 | - TransferFileTextEnd(); | 345 | + //if (LOWORD(lParam) == IDC_ABORTBTN) |
| 346 | + //{ | ||
| 347 | + // // am I in a transfer repeat? | ||
| 348 | + // if (REPEATING(TTYInfo)) | ||
| 349 | + // TransferRepeatDestroy(); | ||
| 350 | + // // am I in a normal recieve state, then stop sending | ||
| 351 | + // else if (gdwReceiveState == RECEIVE_TTY) | ||
| 352 | + // TransferFileTextEnd(); | ||
| 353 | + // // if I am not in a normal receive state, then stop capturing | ||
| 354 | + // else | ||
| 355 | + // gfAbortTransfer = TRUE; | ||
| 356 | + //} | ||
| 357 | + //else | ||
| 358 | + // // transfer abort was sent by transfer thread | ||
| 359 | + // TransferFileTextEnd(); | ||
| 422 | break; | 360 | break; |
| 423 | 361 | ||
| 424 | case ID_TRANSFER_SENDREPEATEDLY: | 362 | case ID_TRANSFER_SENDREPEATEDLY: |
| 425 | - { | ||
| 426 | - DWORD dwFreq; | ||
| 427 | - char * szFilter = "Text Files\0*.TXT\0"; | ||
| 428 | - OPENFILENAME ofn = {0}; | ||
| 429 | - | ||
| 430 | - ofn.lStructSize = sizeof(OPENFILENAME); | ||
| 431 | - ofn.hwndOwner = hwnd; | ||
| 432 | - ofn.lpstrFilter = szFilter; | ||
| 433 | - ofn.lpstrFile = szFileName; | ||
| 434 | - ofn.nMaxFile = MAX_PATH; | ||
| 435 | - ofn.lpstrTitle = "Send File Repeatedly"; | ||
| 436 | - ofn.Flags = OFN_FILEMUSTEXIST; | ||
| 437 | - | ||
| 438 | - if (!GetOpenFileName(&ofn)) | ||
| 439 | - break; | ||
| 440 | - | ||
| 441 | - dwFreq = GetAFrequency(); | ||
| 442 | - | ||
| 443 | - TransferRepeatCreate(szFileName, dwFreq); | ||
| 444 | - } | ||
| 445 | - break; | ||
| 446 | - | 363 | + //{ |
| 364 | + // DWORD dwFreq; | ||
| 365 | + // char * szFilter = "Text Files\0*.TXT\0"; | ||
| 366 | + // OPENFILENAME ofn = {0}; | ||
| 367 | + // ofn.lStructSize = sizeof(OPENFILENAME); | ||
| 368 | + // ofn.hwndOwner = hwnd; | ||
| 369 | + // ofn.lpstrFilter = szFilter; | ||
| 370 | + // ofn.lpstrFile = TTYInfo.szFileName; | ||
| 371 | + // ofn.nMaxFile = MAX_PATH; | ||
| 372 | + // ofn.lpstrTitle = "Send File Repeatedly"; | ||
| 373 | + // ofn.Flags = OFN_FILEMUSTEXIST; | ||
| 374 | + // if (!GetOpenFileName(&ofn)) break; | ||
| 375 | + // dwFreq = GetAFrequency(); | ||
| 376 | + // TransferRepeatCreate(TTYInfo.szFileName, dwFreq); | ||
| 377 | + //} | ||
| 378 | + //break; | ||
| 447 | case ID_TRANSFER_ABORTREPEATEDSENDING: | 379 | case ID_TRANSFER_ABORTREPEATEDSENDING: |
| 448 | TransferRepeatDestroy(); | 380 | TransferRepeatDestroy(); |
| 449 | break; | 381 | break; |
| 450 | 382 | ||
| 451 | case ID_TTY_CLEAR: | 383 | case ID_TTY_CLEAR: |
| 452 | - ClearTTYContents(); | ||
| 453 | - InvalidateRect(ghWndTTY, NULL, TRUE); | 384 | + //ClearTTYContents(); |
| 385 | + //InvalidateRect(ghWndMessage, NULL, TRUE); | ||
| 454 | break; | 386 | break; |
| 455 | 387 | ||
| 456 | // The following correspond to menu choices and buttons in the settings dlog | 388 | // The following correspond to menu choices and buttons in the settings dlog |
| 457 | - case IDC_FONTBTN: | ||
| 458 | - case IDC_SENDBTN: | ||
| 459 | - case IDC_COMMEVENTSBTN: | ||
| 460 | - case IDC_FLOWCONTROLBTN: | ||
| 461 | - case IDC_TIMEOUTSBTN: | ||
| 462 | - SendMessage(ghWndToolbarDlg, WM_COMMAND, (WPARAM) iMenuChoice, (LPARAM) GetDlgItem(ghWndToolbarDlg, iMenuChoice)); | ||
| 463 | - break; | ||
| 464 | - | ||
| 465 | - case ID_FILE_CONNECT: | ||
| 466 | - if (SetupCommPort() != NULL) | ||
| 467 | - ChangeConnection(hwnd, CONNECTED(TTYInfo)); | ||
| 468 | - break; | ||
| 469 | - | 389 | + //case IDC_FONTBTN: |
| 390 | + //case IDC_SENDBTN: | ||
| 391 | + //case IDC_COMMEVENTSBTN: | ||
| 392 | + //case IDC_FLOWCONTROLBTN: | ||
| 393 | + //case IDC_TIMEOUTSBTN: | ||
| 394 | + //SendMessage(ghWndToolbarDlg, WM_COMMAND, (WPARAM) iMenuChoice, (LPARAM) GetDlgItem(ghWndToolbarDlg, iMenuChoice)); | ||
| 395 | + //break; | ||
| 470 | case ID_FILE_DISCONNECT: | 396 | case ID_FILE_DISCONNECT: |
| 471 | - if (BreakDownCommPort()) | ||
| 472 | - ChangeConnection(hwnd, CONNECTED(TTYInfo)); | 397 | + //if (BreakDownCommPort()) |
| 398 | + // ChangeConnection(hwnd, CONNECTED(TTYInfo)); | ||
| 473 | break; | 399 | break; |
| 474 | 400 | ||
| 475 | case ID_FILE_EXIT: | 401 | case ID_FILE_EXIT: |
| @@ -497,12 +423,12 @@ HISTORY: Date: Author: Comment: | @@ -497,12 +423,12 @@ HISTORY: Date: Author: Comment: | ||
| 497 | /*-----------------------------------------------------------------------------*/ | 423 | /*-----------------------------------------------------------------------------*/ |
| 498 | void OpenTTYChildWindow(HWND hWnd) | 424 | void OpenTTYChildWindow(HWND hWnd) |
| 499 | { | 425 | { |
| 500 | - ghWndTTY = CreateWindow( "MTTTYChildClass", "TTY Window", | 426 | + ghWndMessage = CreateWindow( "MTTTYChildClass", "TTY Window", |
| 501 | WS_CHILD | WS_VISIBLE | WS_VSCROLL, | 427 | WS_CHILD | WS_VISIBLE | WS_VSCROLL, |
| 502 | 0,0, | 428 | 0,0, |
| 503 | 0,0, | 429 | 0,0, |
| 504 | hWnd, (HMENU)ID_TTYWINDOW, ghInst, NULL); | 430 | hWnd, (HMENU)ID_TTYWINDOW, ghInst, NULL); |
| 505 | - if (ghWndTTY == NULL) | 431 | + if (ghWndMessage == NULL) |
| 506 | ErrorReporter("Can't Create TTY Child Window"); | 432 | ErrorReporter("Can't Create TTY Child Window"); |
| 507 | 433 | ||
| 508 | return; | 434 | return; |
| @@ -579,9 +505,7 @@ BOOL NEAR ScrollTTYVert( HWND hWnd, WORD wScrollCmd, WORD wScrollPos ) | @@ -579,9 +505,7 @@ BOOL NEAR ScrollTTYVert( HWND hWnd, WORD wScrollCmd, WORD wScrollPos ) | ||
| 579 | if (nScrollAmt != 0) | 505 | if (nScrollAmt != 0) |
| 580 | { | 506 | { |
| 581 | YOFFSET( TTYInfo ) = YOFFSET( TTYInfo ) + nScrollAmt ; | 507 | YOFFSET( TTYInfo ) = YOFFSET( TTYInfo ) + nScrollAmt ; |
| 582 | - | ||
| 583 | SetScrollPos( hWnd, SB_VERT, YOFFSET( TTYInfo ), TRUE ) ; | 508 | SetScrollPos( hWnd, SB_VERT, YOFFSET( TTYInfo ), TRUE ) ; |
| 584 | - | ||
| 585 | ScrollWindowEx( hWnd, 0, -nScrollAmt, NULL, NULL, NULL, NULL, SW_INVALIDATE | SW_ERASE) ; | 509 | ScrollWindowEx( hWnd, 0, -nScrollAmt, NULL, NULL, NULL, NULL, SW_INVALIDATE | SW_ERASE) ; |
| 586 | } | 510 | } |
| 587 | 511 | ||
| @@ -696,20 +620,16 @@ BOOL NEAR PaintTTY( HWND hWnd ) | @@ -696,20 +620,16 @@ BOOL NEAR PaintTTY( HWND hWnd ) | ||
| 696 | hDC = BeginPaint( hWnd, &ps ) ; | 620 | hDC = BeginPaint( hWnd, &ps ) ; |
| 697 | hOldFont = SelectObject( hDC, HTTYFONT( TTYInfo ) ) ; | 621 | hOldFont = SelectObject( hDC, HTTYFONT( TTYInfo ) ) ; |
| 698 | SetTextColor( hDC, FGCOLOR( TTYInfo ) ) ; | 622 | SetTextColor( hDC, FGCOLOR( TTYInfo ) ) ; |
| 623 | +#if 1//def __TOPWELL_EDIT__ | ||
| 624 | + SetBkColor( hDC, TTYInfo.rgbBGColor ) ; | ||
| 625 | +#else | ||
| 699 | SetBkColor( hDC, GetSysColor( COLOR_WINDOW ) ) ; | 626 | SetBkColor( hDC, GetSysColor( COLOR_WINDOW ) ) ; |
| 627 | +#endif | ||
| 700 | rect = ps.rcPaint ; | 628 | rect = ps.rcPaint ; |
| 701 | - nRow = | ||
| 702 | - min( MAXROWS - 1, | ||
| 703 | - max( 0, (rect.top + YOFFSET( TTYInfo )) / YCHAR( TTYInfo ) ) ) ; | ||
| 704 | - nEndRow = | ||
| 705 | - min( MAXROWS - 1, | ||
| 706 | - ((rect.bottom + YOFFSET( TTYInfo ) - 1) / YCHAR( TTYInfo ) ) ) ; | ||
| 707 | - nCol = | ||
| 708 | - min( MAXCOLS - 1, | ||
| 709 | - max( 0, (rect.left + XOFFSET( TTYInfo )) / XCHAR( TTYInfo ) ) ) ; | ||
| 710 | - nEndCol = | ||
| 711 | - min( MAXCOLS - 1, | ||
| 712 | - ((rect.right + XOFFSET( TTYInfo ) - 1) / XCHAR( TTYInfo ) ) ) ; | 629 | + nRow = min( MAXROWS - 1, max( 0, (rect.top + YOFFSET( TTYInfo )) / YCHAR( TTYInfo ) ) ) ; |
| 630 | + nEndRow = min( MAXROWS - 1, ((rect.bottom + YOFFSET( TTYInfo ) - 1) / YCHAR( TTYInfo ) ) ) ; | ||
| 631 | + nCol = min( MAXCOLS - 1, max( 0, (rect.left + XOFFSET( TTYInfo )) / XCHAR( TTYInfo ) ) ) ; | ||
| 632 | + nEndCol = min( MAXCOLS - 1, ((rect.right + XOFFSET( TTYInfo ) - 1) / XCHAR( TTYInfo ) ) ) ; | ||
| 713 | nCount = nEndCol - nCol + 1 ; | 633 | nCount = nEndCol - nCol + 1 ; |
| 714 | for (; nRow <= nEndRow; nRow++) | 634 | for (; nRow <= nEndRow; nRow++) |
| 715 | { | 635 | { |
| @@ -720,9 +640,7 @@ BOOL NEAR PaintTTY( HWND hWnd ) | @@ -720,9 +640,7 @@ BOOL NEAR PaintTTY( HWND hWnd ) | ||
| 720 | rect.left = nHorzPos ; | 640 | rect.left = nHorzPos ; |
| 721 | rect.right = nHorzPos + XCHAR( TTYInfo ) * nCount ; | 641 | rect.right = nHorzPos + XCHAR( TTYInfo ) * nCount ; |
| 722 | SetBkMode( hDC, OPAQUE ) ; | 642 | SetBkMode( hDC, OPAQUE ) ; |
| 723 | - ExtTextOut( hDC, nHorzPos, nVertPos, ETO_OPAQUE | ETO_CLIPPED, &rect, | ||
| 724 | - (LPSTR)( SCREEN( TTYInfo ) + nRow * MAXCOLS + nCol ), | ||
| 725 | - nCount, NULL ) ; | 643 | + ExtTextOut( hDC, nHorzPos, nVertPos, ETO_OPAQUE | ETO_CLIPPED, &rect, (LPSTR)( SCREEN( TTYInfo ) + nRow * MAXCOLS + nCol ), nCount, NULL ) ; |
| 726 | } | 644 | } |
| 727 | SelectObject( hDC, hOldFont ) ; | 645 | SelectObject( hDC, hOldFont ) ; |
| 728 | EndPaint( hWnd, &ps ) ; | 646 | EndPaint( hWnd, &ps ) ; |
| @@ -920,17 +838,17 @@ int WINAPI TTYChildProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam) | @@ -920,17 +838,17 @@ int WINAPI TTYChildProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam) | ||
| 920 | return FALSE; | 838 | return FALSE; |
| 921 | 839 | ||
| 922 | if (LOCALECHO(TTYInfo)) | 840 | if (LOCALECHO(TTYInfo)) |
| 923 | - OutputABufferToWindow(ghWndTTY, (CHAR *) &wParam, 1); | 841 | + OutputABufferToWindow(ghWndMessage, (CHAR *) &wParam, 1); |
| 924 | } | 842 | } |
| 925 | } | 843 | } |
| 926 | break; | 844 | break; |
| 927 | 845 | ||
| 928 | case WM_SETFOCUS: | 846 | case WM_SETFOCUS: |
| 929 | - SetTTYFocus( ghWndTTY ) ; | 847 | + SetTTYFocus( ghWndMessage ) ; |
| 930 | break ; | 848 | break ; |
| 931 | 849 | ||
| 932 | case WM_KILLFOCUS: | 850 | case WM_KILLFOCUS: |
| 933 | - KillTTYFocus( ghWndTTY ) ; | 851 | + KillTTYFocus( ghWndMessage ) ; |
| 934 | break ; | 852 | break ; |
| 935 | 853 | ||
| 936 | case WM_MOUSEACTIVATE: | 854 | case WM_MOUSEACTIVATE: |
| @@ -947,3 +865,41 @@ int WINAPI TTYChildProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam) | @@ -947,3 +865,41 @@ int WINAPI TTYChildProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam) | ||
| 947 | } | 865 | } |
| 948 | return 0L; | 866 | return 0L; |
| 949 | } | 867 | } |
| 868 | +BOOL ResizeAllWindow(DWORD mainwidth, WORD mainheigh) | ||
| 869 | +{ | ||
| 870 | + RECT rect_setting,rect_info,rect_stauts; | ||
| 871 | + rect_setting.left = 0; | ||
| 872 | + rect_setting.top = 0; | ||
| 873 | + rect_setting.right = mainwidth; | ||
| 874 | + rect_setting.bottom = SETTINGSFACTOR*gwBaseY; | ||
| 875 | + | ||
| 876 | + rect_info.left = mainwidth/5; | ||
| 877 | + rect_info.top = rect_setting.bottom; | ||
| 878 | + rect_info.right = mainwidth; | ||
| 879 | + rect_info.bottom = mainheigh; | ||
| 880 | + | ||
| 881 | + rect_stauts.left = 0; | ||
| 882 | + rect_stauts.top = rect_setting.bottom; | ||
| 883 | + rect_stauts.right = rect_info.left ; | ||
| 884 | + rect_stauts.bottom = mainheigh; | ||
| 885 | + | ||
| 886 | + MoveWindow(ghWndToolbarDlg, | ||
| 887 | + rect_setting.left, | ||
| 888 | + rect_setting.top, | ||
| 889 | + rect_setting.right -rect_setting.left, | ||
| 890 | + rect_setting.bottom -rect_setting.top, | ||
| 891 | + TRUE); | ||
| 892 | + MoveWindow(ghWndMessage, | ||
| 893 | + rect_info.left, | ||
| 894 | + rect_info.top, | ||
| 895 | + rect_info.right -rect_info.left, | ||
| 896 | + rect_info.bottom -rect_info.top, | ||
| 897 | + TRUE); | ||
| 898 | + MoveWindow(ghWndStatusDlg, | ||
| 899 | + rect_stauts.left, | ||
| 900 | + rect_stauts.top, | ||
| 901 | + rect_stauts.right -rect_stauts.left, | ||
| 902 | + rect_stauts.bottom -rect_stauts.top, | ||
| 903 | + TRUE); | ||
| 904 | + | ||
| 905 | +} |
| @@ -170,23 +170,45 @@ HISTORY: Date: Author: Comment: | @@ -170,23 +170,45 @@ HISTORY: Date: Author: Comment: | ||
| 170 | 10/27/95 AllenD Wrote it | 170 | 10/27/95 AllenD Wrote it |
| 171 | 171 | ||
| 172 | -----------------------------------------------------------------------------*/ | 172 | -----------------------------------------------------------------------------*/ |
| 173 | -void OutputABuffer(HWND hTTY, char * lpBuf, DWORD dwBufLen) | 173 | +void OutputAclorBuffer( char * lpBuf ,DWORD color) |
| 174 | { | 174 | { |
| 175 | - if (dwBufLen == 0) { | 175 | + DWORD dwBufLen = strlen(lpBuf); |
| 176 | + TTYInfo.rgbBGColor = color; | ||
| 177 | + if (dwBufLen == 0) | ||
| 178 | + { | ||
| 176 | OutputDebugString("NULL Buffer in OutputABuffer\n\r"); | 179 | OutputDebugString("NULL Buffer in OutputABuffer\n\r"); |
| 177 | return; | 180 | return; |
| 178 | } | 181 | } |
| 179 | - | ||
| 180 | switch(gdwReceiveState) | 182 | switch(gdwReceiveState) |
| 181 | { | 183 | { |
| 182 | case RECEIVE_TTY: | 184 | case RECEIVE_TTY: |
| 183 | - OutputABufferToWindow(hTTY, lpBuf, dwBufLen); | 185 | + OutputABufferToWindow(ghWndMessage, lpBuf, dwBufLen); |
| 184 | break; | 186 | break; |
| 185 | - | ||
| 186 | case RECEIVE_CAPTURED: | 187 | case RECEIVE_CAPTURED: |
| 187 | OutputABufferToFile(ghFileCapture, lpBuf, dwBufLen); | 188 | OutputABufferToFile(ghFileCapture, lpBuf, dwBufLen); |
| 188 | break; | 189 | break; |
| 190 | + default: | ||
| 191 | + OutputDebugString("Unknown receive state!\n\r"); | ||
| 192 | + } | ||
| 193 | +} | ||
| 194 | + | ||
| 189 | 195 | ||
| 196 | +void OutputABuffer(char * lpBuf ) | ||
| 197 | +{ | ||
| 198 | + DWORD dwBufLen = strlen(lpBuf); | ||
| 199 | + if (dwBufLen == 0) | ||
| 200 | + { | ||
| 201 | + OutputDebugString("NULL Buffer in OutputABuffer\n\r"); | ||
| 202 | + return; | ||
| 203 | + } | ||
| 204 | + switch(gdwReceiveState) | ||
| 205 | + { | ||
| 206 | + case RECEIVE_TTY: | ||
| 207 | + OutputABufferToWindow(ghWndMessage, lpBuf, dwBufLen); | ||
| 208 | + break; | ||
| 209 | + case RECEIVE_CAPTURED: | ||
| 210 | + OutputABufferToFile(ghFileCapture, lpBuf, dwBufLen); | ||
| 211 | + break; | ||
| 190 | default: | 212 | default: |
| 191 | OutputDebugString("Unknown receive state!\n\r"); | 213 | OutputDebugString("Unknown receive state!\n\r"); |
| 192 | } | 214 | } |
| @@ -19,11 +19,88 @@ | @@ -19,11 +19,88 @@ | ||
| 19 | -----------------------------------------------------------------------------*/ | 19 | -----------------------------------------------------------------------------*/ |
| 20 | 20 | ||
| 21 | #include <windows.h> | 21 | #include <windows.h> |
| 22 | +#include <commctrl.h> | ||
| 22 | #include "mttty.h" | 23 | #include "mttty.h" |
| 23 | 24 | ||
| 24 | #define AMOUNT_TO_READ 512 | 25 | #define AMOUNT_TO_READ 512 |
| 25 | #define NUM_READSTAT_HANDLES 4 | 26 | #define NUM_READSTAT_HANDLES 4 |
| 26 | 27 | ||
| 28 | +void PhraseMessageFromUart(char* buffToPhrase) | ||
| 29 | +{ | ||
| 30 | + char Flashed_percent; | ||
| 31 | + char lpBuf[AMOUNT_TO_READ]; | ||
| 32 | + | ||
| 33 | + int loop1, loop2; | ||
| 34 | + loop2 = 0; | ||
| 35 | + for (loop1 = 0; loop1 < AMOUNT_TO_READ; loop1++) | ||
| 36 | + { | ||
| 37 | + if (buffToPhrase[loop1] < 0x0A || buffToPhrase[loop1] >= 0x7f) | ||
| 38 | + continue; | ||
| 39 | + else | ||
| 40 | + lpBuf[loop2++] = buffToPhrase[loop1]; | ||
| 41 | + } | ||
| 42 | + lpBuf[loop2++] = '\r'; | ||
| 43 | + lpBuf[loop2++] = '\n'; | ||
| 44 | + lpBuf[loop2] = 0; | ||
| 45 | + if (strstr(lpBuf, "ROM boot")) | ||
| 46 | + { | ||
| 47 | + if (GetTickCount() -TTYInfo.tickcountFinish < 2000) return 0; | ||
| 48 | + TTYInfo.rgbBGColor = RGB(255, 255, 255); | ||
| 49 | + OutputABuffer( "开始下载\r\n"); | ||
| 50 | + TTYInfo.DownloadReday = TRUE; | ||
| 51 | + if (strlen(TTYInfo.szFileName) != 0) | ||
| 52 | + TransferFileTextStart(TTYInfo.szFileName); | ||
| 53 | + else | ||
| 54 | + { | ||
| 55 | + TTYInfo.rgbBGColor = RGB(255, 201, 14); | ||
| 56 | + OutputABuffer( "还未选择软件\r\n"); | ||
| 57 | + return 0; | ||
| 58 | + } | ||
| 59 | + } | ||
| 60 | + else if (strstr(lpBuf, "Verify successful")) | ||
| 61 | + { | ||
| 62 | + TTYInfo.tickcountFinish = GetTickCount(); | ||
| 63 | + TTYInfo.rgbBGColor = RGB(255, 255, 255); | ||
| 64 | + OutputABuffer( "下载完成\r\n"); | ||
| 65 | + TTYInfo.DownloadReday = FALSE; | ||
| 66 | + PostMessage(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), PBM_SETPOS, 100, 0); | ||
| 67 | + PostMessage(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), PBM_SETBARCOLOR, 0, RGB(10, 255,10)); | ||
| 68 | + } | ||
| 69 | + else if (strstr(lpBuf, "Programming:")) | ||
| 70 | + { | ||
| 71 | + char * pchar_percent = strstr(lpBuf, "Programming:"); | ||
| 72 | + char ascbufpercent[64]; | ||
| 73 | + if (pchar_percent != NULL) | ||
| 74 | + { | ||
| 75 | + TTYInfo.tickcountFinish = GetTickCount(); | ||
| 76 | + TTYInfo.rgbBGColor = RGB(255, 255, 255); | ||
| 77 | + memset(ascbufpercent, 0, 64); | ||
| 78 | + strncpy(ascbufpercent, pchar_percent + 12, 3); | ||
| 79 | + if (ascbufpercent[2] <= '0' && ascbufpercent[2] >= '9') | ||
| 80 | + ascbufpercent[2] = 0; | ||
| 81 | + Flashed_percent = atoi(ascbufpercent); | ||
| 82 | + PostMessage(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), PBM_SETPOS, Flashed_percent, 0); | ||
| 83 | + PostMessage(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), PBM_SETBARCOLOR, 0, RGB(10, 10, 255)); | ||
| 84 | + //OutputABuffer(hTTY, ascbufpercent); | ||
| 85 | + TTYInfo.DownloadReday = FALSE; | ||
| 86 | + } | ||
| 87 | + } | ||
| 88 | + else if (strstr(lpBuf, "Verify fail")) | ||
| 89 | + { | ||
| 90 | + TTYInfo.rgbBGColor = RGB(255, 50, 50); | ||
| 91 | + OutputABuffer( "下载失败\r\n"); | ||
| 92 | + TTYInfo.DownloadReday = FALSE; | ||
| 93 | + PostMessage(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), PBM_SETBARCOLOR, 0, TTYInfo.rgbBGColor); | ||
| 94 | + } | ||
| 95 | + else | ||
| 96 | + { | ||
| 97 | + //TTYInfo.rgbBGColor = RGB(255, 255, 255); | ||
| 98 | + //OutputABuffer(hTTY, lpBuf); | ||
| 99 | + //TTYInfo.DownloadReday = FALSE; | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | +} | ||
| 103 | + | ||
| 27 | /*----------------------------------------------------------------------------- | 104 | /*----------------------------------------------------------------------------- |
| 28 | 105 | ||
| 29 | FUNCTION: ReaderAndStatusProc(LPVOID) | 106 | FUNCTION: ReaderAndStatusProc(LPVOID) |
| @@ -52,12 +129,14 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | @@ -52,12 +129,14 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | ||
| 52 | DWORD dwStoredFlags = 0xFFFFFFFF; // local copy of event flags | 129 | DWORD dwStoredFlags = 0xFFFFFFFF; // local copy of event flags |
| 53 | DWORD dwCommEvent; // result from WaitCommEvent | 130 | DWORD dwCommEvent; // result from WaitCommEvent |
| 54 | DWORD dwOvRes; // result from GetOverlappedResult | 131 | DWORD dwOvRes; // result from GetOverlappedResult |
| 55 | - DWORD dwRead; // bytes actually read | 132 | + DWORD dwReadFromUart; // bytes actually read |
| 56 | DWORD dwRes; // result from WaitForSingleObject | 133 | DWORD dwRes; // result from WaitForSingleObject |
| 57 | BOOL fWaitingOnRead = FALSE; | 134 | BOOL fWaitingOnRead = FALSE; |
| 58 | BOOL fWaitingOnStat = FALSE; | 135 | BOOL fWaitingOnStat = FALSE; |
| 59 | BOOL fThreadDone = FALSE; | 136 | BOOL fThreadDone = FALSE; |
| 60 | - char lpBuf[AMOUNT_TO_READ]; | 137 | +#if 1//def __TOPWELL_EDIT__ |
| 138 | + char lpBuf_first[AMOUNT_TO_READ]; | ||
| 139 | +#endif | ||
| 61 | HWND hTTY; | 140 | HWND hTTY; |
| 62 | 141 | ||
| 63 | hTTY = (HANDLE) lpV; | 142 | hTTY = (HANDLE) lpV; |
| @@ -92,49 +171,45 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | @@ -92,49 +171,45 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | ||
| 92 | CheckModemStatus(TRUE); | 171 | CheckModemStatus(TRUE); |
| 93 | CheckComStat(TRUE); | 172 | CheckComStat(TRUE); |
| 94 | 173 | ||
| 95 | - while ( !fThreadDone ) { | ||
| 96 | - | ||
| 97 | - // | 174 | + while ( !fThreadDone ) |
| 175 | + { | ||
| 98 | // If no reading is allowed, then set flag to | 176 | // If no reading is allowed, then set flag to |
| 99 | // make it look like a read is already outstanding. | 177 | // make it look like a read is already outstanding. |
| 100 | - // | ||
| 101 | if (NOREADING( TTYInfo )) | 178 | if (NOREADING( TTYInfo )) |
| 102 | fWaitingOnRead = TRUE; | 179 | fWaitingOnRead = TRUE; |
| 103 | - | ||
| 104 | - // | ||
| 105 | // if no read is outstanding, then issue another one | 180 | // if no read is outstanding, then issue another one |
| 106 | - // | ||
| 107 | - if (!fWaitingOnRead) { | ||
| 108 | - if (!ReadFile(COMDEV(TTYInfo), lpBuf, AMOUNT_TO_READ, &dwRead, &osReader)) { | 181 | + if (!fWaitingOnRead) |
| 182 | + { | ||
| 183 | + #if 1//def __TOPWELL_EDIT__ | ||
| 184 | + if (!ReadFile(COMDEV(TTYInfo), lpBuf_first, AMOUNT_TO_READ, &dwReadFromUart, &osReader)) | ||
| 185 | + #else | ||
| 186 | + if (!ReadFile(COMDEV(TTYInfo), lpBuf, AMOUNT_TO_READ, &dwRead, &osReader)) | ||
| 187 | + #endif | ||
| 188 | + { | ||
| 109 | if (GetLastError() != ERROR_IO_PENDING) // read not delayed? | 189 | if (GetLastError() != ERROR_IO_PENDING) // read not delayed? |
| 110 | ErrorInComm("ReadFile in ReaderAndStatusProc"); | 190 | ErrorInComm("ReadFile in ReaderAndStatusProc"); |
| 111 | - | ||
| 112 | fWaitingOnRead = TRUE; | 191 | fWaitingOnRead = TRUE; |
| 113 | } | 192 | } |
| 114 | - else { // read completed immediately | ||
| 115 | - if ((dwRead != MAX_READ_BUFFER) && SHOWTIMEOUTS(TTYInfo)) | 193 | + else |
| 194 | + { // read completed immediately | ||
| 195 | + if ((dwReadFromUart != MAX_READ_BUFFER) && SHOWTIMEOUTS(TTYInfo)) | ||
| 116 | UpdateStatus("Read timed out immediately.\r\n"); | 196 | UpdateStatus("Read timed out immediately.\r\n"); |
| 117 | - | ||
| 118 | - if (dwRead) | ||
| 119 | - OutputABuffer(hTTY, lpBuf, dwRead); | 197 | + if (dwReadFromUart) |
| 198 | + PhraseMessageFromUart(lpBuf_first); | ||
| 199 | + //OutputABuffer(hTTY, lpBuf_first); | ||
| 120 | } | 200 | } |
| 121 | } | 201 | } |
| 122 | - | ||
| 123 | - // | ||
| 124 | // If status flags have changed, then reset comm mask. | 202 | // If status flags have changed, then reset comm mask. |
| 125 | // This will cause a pending WaitCommEvent to complete | 203 | // This will cause a pending WaitCommEvent to complete |
| 126 | // and the resultant event flag will be NULL. | 204 | // and the resultant event flag will be NULL. |
| 127 | - // | ||
| 128 | - if (dwStoredFlags != EVENTFLAGS(TTYInfo)) { | 205 | + if (dwStoredFlags != EVENTFLAGS(TTYInfo)) |
| 206 | + { | ||
| 129 | dwStoredFlags = EVENTFLAGS(TTYInfo); | 207 | dwStoredFlags = EVENTFLAGS(TTYInfo); |
| 130 | if (!SetCommMask(COMDEV(TTYInfo), dwStoredFlags)) | 208 | if (!SetCommMask(COMDEV(TTYInfo), dwStoredFlags)) |
| 131 | ErrorReporter("SetCommMask"); | 209 | ErrorReporter("SetCommMask"); |
| 132 | } | 210 | } |
| 133 | - | ||
| 134 | - // | ||
| 135 | // If event checks are not allowed, then make it look | 211 | // If event checks are not allowed, then make it look |
| 136 | // like an event check operation is outstanding | 212 | // like an event check operation is outstanding |
| 137 | - // | ||
| 138 | if (NOEVENTS(TTYInfo)) | 213 | if (NOEVENTS(TTYInfo)) |
| 139 | fWaitingOnStat = TRUE; | 214 | fWaitingOnStat = TRUE; |
| 140 | // | 215 | // |
| @@ -167,18 +242,24 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | @@ -167,18 +242,24 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | ||
| 167 | // read completed | 242 | // read completed |
| 168 | // | 243 | // |
| 169 | case WAIT_OBJECT_0: | 244 | case WAIT_OBJECT_0: |
| 170 | - if (!GetOverlappedResult(COMDEV(TTYInfo), &osReader, &dwRead, FALSE)) { | 245 | + if (!GetOverlappedResult(COMDEV(TTYInfo), &osReader, &dwReadFromUart, FALSE)) |
| 246 | + { | ||
| 171 | if (GetLastError() == ERROR_OPERATION_ABORTED) | 247 | if (GetLastError() == ERROR_OPERATION_ABORTED) |
| 172 | UpdateStatus("Read aborted\r\n"); | 248 | UpdateStatus("Read aborted\r\n"); |
| 173 | else | 249 | else |
| 174 | ErrorInComm("GetOverlappedResult (in Reader)"); | 250 | ErrorInComm("GetOverlappedResult (in Reader)"); |
| 175 | } | 251 | } |
| 176 | - else { // read completed successfully | ||
| 177 | - if ((dwRead != MAX_READ_BUFFER) && SHOWTIMEOUTS(TTYInfo)) | 252 | + else |
| 253 | + { // read completed successfully | ||
| 254 | + if ((dwReadFromUart != MAX_READ_BUFFER) && SHOWTIMEOUTS(TTYInfo)) | ||
| 178 | UpdateStatus("Read timed out overlapped.\r\n"); | 255 | UpdateStatus("Read timed out overlapped.\r\n"); |
| 179 | - | 256 | + #if 1//def __TOPWELL_EDIT__ |
| 257 | + if (dwReadFromUart) | ||
| 258 | + PhraseMessageFromUart(lpBuf_first); | ||
| 259 | + #else | ||
| 180 | if (dwRead) | 260 | if (dwRead) |
| 181 | OutputABuffer(hTTY, lpBuf, dwRead); | 261 | OutputABuffer(hTTY, lpBuf, dwRead); |
| 262 | + #endif | ||
| 182 | } | 263 | } |
| 183 | 264 | ||
| 184 | fWaitingOnRead = FALSE; | 265 | fWaitingOnRead = FALSE; |
| @@ -188,7 +269,8 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | @@ -188,7 +269,8 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | ||
| 188 | // status completed | 269 | // status completed |
| 189 | // | 270 | // |
| 190 | case WAIT_OBJECT_0 + 1: | 271 | case WAIT_OBJECT_0 + 1: |
| 191 | - if (!GetOverlappedResult(COMDEV(TTYInfo), &osStatus, &dwOvRes, FALSE)) { | 272 | + if (!GetOverlappedResult(COMDEV(TTYInfo), &osStatus, &dwOvRes, FALSE)) |
| 273 | + { | ||
| 192 | if (GetLastError() == ERROR_OPERATION_ABORTED) | 274 | if (GetLastError() == ERROR_OPERATION_ABORTED) |
| 193 | UpdateStatus("WaitCommEvent aborted\r\n"); | 275 | UpdateStatus("WaitCommEvent aborted\r\n"); |
| 194 | else | 276 | else |
| @@ -196,7 +278,6 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | @@ -196,7 +278,6 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | ||
| 196 | } | 278 | } |
| 197 | else // status check completed successfully | 279 | else // status check completed successfully |
| 198 | ReportStatusEvent(dwCommEvent); | 280 | ReportStatusEvent(dwCommEvent); |
| 199 | - | ||
| 200 | fWaitingOnStat = FALSE; | 281 | fWaitingOnStat = FALSE; |
| 201 | break; | 282 | break; |
| 202 | 283 | ||
| @@ -224,7 +305,8 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | @@ -224,7 +305,8 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV) | ||
| 224 | // if status checks are not allowed, then don't issue the | 305 | // if status checks are not allowed, then don't issue the |
| 225 | // modem status check nor the com stat check | 306 | // modem status check nor the com stat check |
| 226 | // | 307 | // |
| 227 | - if (!NOSTATUS(TTYInfo)) { | 308 | + if (!NOSTATUS(TTYInfo)) |
| 309 | + { | ||
| 228 | CheckModemStatus(FALSE); // take this opportunity to do | 310 | CheckModemStatus(FALSE); // take this opportunity to do |
| 229 | CheckComStat(FALSE); // a modem status check and | 311 | CheckComStat(FALSE); // a modem status check and |
| 230 | // a comm status check | 312 | // a comm status check |
| @@ -55,17 +55,17 @@ void FillComboBox( HWND, char ** szString, DWORD *, WORD, DWORD ); | @@ -55,17 +55,17 @@ void FillComboBox( HWND, char ** szString, DWORD *, WORD, DWORD ); | ||
| 55 | BOOL SettingsDlgInit( HWND ); | 55 | BOOL SettingsDlgInit( HWND ); |
| 56 | DWORD GetdwTTYItem( HWND, int, char **, DWORD *, int ); | 56 | DWORD GetdwTTYItem( HWND, int, char **, DWORD *, int ); |
| 57 | BYTE GetbTTYItem( HWND, int, char **, DWORD *, int); | 57 | BYTE GetbTTYItem( HWND, int, char **, DWORD *, int); |
| 58 | -BOOL CALLBACK CommEventsProc( HWND, UINT, WPARAM, LPARAM ); | 58 | +//BOOL CALLBACK CommEventsProc( HWND, UINT, WPARAM, LPARAM ); |
| 59 | BOOL CALLBACK ToolbarProc( HWND, UINT, WPARAM, LPARAM ); | 59 | BOOL CALLBACK ToolbarProc( HWND, UINT, WPARAM, LPARAM ); |
| 60 | void InitHexControl(HWND, WORD, WORD, char); | 60 | void InitHexControl(HWND, WORD, WORD, char); |
| 61 | char GetHexControl(HWND, WORD, WORD); | 61 | char GetHexControl(HWND, WORD, WORD); |
| 62 | void SaveCommEventsDlg( HWND ); | 62 | void SaveCommEventsDlg( HWND ); |
| 63 | void InitCommEventsDlg( HWND, DWORD ); | 63 | void InitCommEventsDlg( HWND, DWORD ); |
| 64 | -BOOL CALLBACK FlowControlProc( HWND, UINT, WPARAM, LPARAM ); | 64 | +//BOOL CALLBACK FlowControlProc( HWND, UINT, WPARAM, LPARAM ); |
| 65 | void InitFlowControlDlg( HWND ); | 65 | void InitFlowControlDlg( HWND ); |
| 66 | void SaveFlowControlDlg( HWND ); | 66 | void SaveFlowControlDlg( HWND ); |
| 67 | void FlowDefault(HWND hdlg, WORD wId); | 67 | void FlowDefault(HWND hdlg, WORD wId); |
| 68 | -BOOL CALLBACK TimeoutsProc( HWND, UINT, WPARAM, LPARAM ); | 68 | +//BOOL CALLBACK TimeoutsProc( HWND, UINT, WPARAM, LPARAM ); |
| 69 | void InitTimeoutsDlg( HWND, COMMTIMEOUTS ); | 69 | void InitTimeoutsDlg( HWND, COMMTIMEOUTS ); |
| 70 | void SaveTimeoutsDlg( HWND ); | 70 | void SaveTimeoutsDlg( HWND ); |
| 71 | BOOL CALLBACK GetADWORDProc( HWND, UINT, WPARAM, LPARAM ); | 71 | BOOL CALLBACK GetADWORDProc( HWND, UINT, WPARAM, LPARAM ); |
| @@ -176,76 +176,52 @@ void ChangeConnection( HWND hwnd, BOOL fConnected ) | @@ -176,76 +176,52 @@ void ChangeConnection( HWND hwnd, BOOL fConnected ) | ||
| 176 | Set focus to the child tty window | 176 | Set focus to the child tty window |
| 177 | */ | 177 | */ |
| 178 | hMenu = GetMenu( hwnd ) ; | 178 | hMenu = GetMenu( hwnd ) ; |
| 179 | - EnableMenuItem( hMenu, ID_FILE_CONNECT, | ||
| 180 | - MF_GRAYED | MF_DISABLED | MF_BYCOMMAND ) ; | ||
| 181 | - EnableMenuItem( hMenu, ID_FILE_DISCONNECT, | ||
| 182 | - MF_ENABLED | MF_BYCOMMAND ) ; | ||
| 183 | - | ||
| 184 | - EnableMenuItem( hMenu, ID_TRANSFER_SENDFILETEXT, | ||
| 185 | - MF_ENABLED | MF_BYCOMMAND ) ; | ||
| 186 | - EnableMenuItem( hMenu, ID_TRANSFER_RECEIVEFILETEXT, | ||
| 187 | - MF_ENABLED | MF_BYCOMMAND ) ; | ||
| 188 | - EnableMenuItem( hMenu, ID_TRANSFER_SENDREPEATEDLY, | ||
| 189 | - MF_ENABLED | MF_BYCOMMAND ) ; | ||
| 190 | - EnableMenuItem( hMenu, ID_TRANSFER_ABORTSENDING, | ||
| 191 | - MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ); | ||
| 192 | - EnableMenuItem( hMenu, ID_TRANSFER_ABORTREPEATEDSENDING, | ||
| 193 | - MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ); | 179 | +// EnableMenuItem( hMenu, ID_FILE_DISCONNECT, MF_ENABLED | MF_BYCOMMAND ) ; |
| 180 | +// EnableMenuItem( hMenu, ID_TRANSFER_SENDFILETEXT, MF_ENABLED | MF_BYCOMMAND ) ; | ||
| 181 | +// EnableMenuItem( hMenu, ID_TRANSFER_RECEIVEFILETEXT, MF_ENABLED | MF_BYCOMMAND ) ; | ||
| 182 | +// EnableMenuItem( hMenu, ID_TRANSFER_SENDREPEATEDLY, MF_ENABLED | MF_BYCOMMAND ) ; | ||
| 183 | +// EnableMenuItem( hMenu, ID_TRANSFER_ABORTSENDING, MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ); | ||
| 184 | +// EnableMenuItem( hMenu, ID_TRANSFER_ABORTREPEATEDSENDING, MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ); | ||
| 194 | 185 | ||
| 195 | EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), FALSE); | 186 | EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), FALSE); |
| 196 | - EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_NOWRITINGCHK), FALSE); | ||
| 197 | - EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_NOREADINGCHK), FALSE); | ||
| 198 | - EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_NOEVENTSCHK), FALSE); | ||
| 199 | - EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_NOSTATUSCHK), FALSE); | ||
| 200 | 187 | ||
| 201 | - for (i = IDC_STATCTS; i <= IDC_STATRLSD; i++) | ||
| 202 | - EnableWindow( GetDlgItem(ghWndStatusDlg, i), TRUE ); | 188 | + //for (i = IDC_STATCTS; i <= IDC_STATRLSD; i++) |
| 189 | + // EnableWindow( GetDlgItem(ghWndStatusDlg, i), TRUE ); | ||
| 203 | 190 | ||
| 204 | - for (i = IDC_CTSHOLDCHK; i <= IDC_RXCHAREDIT; i++) | ||
| 205 | - EnableWindow( GetDlgItem(ghWndStatusDlg, i), TRUE); | 191 | +// for (i = IDC_CTSHOLDCHK; i <= IDC_RXCHAREDIT; i++) |
| 192 | +// EnableWindow( GetDlgItem(ghWndStatusDlg, i), TRUE); | ||
| 206 | 193 | ||
| 207 | - SetFocus(ghWndTTY); | 194 | + SetFocus(ghWndMessage); |
| 208 | } | 195 | } |
| 209 | else { | 196 | else { |
| 210 | // | 197 | // |
| 211 | // Not connected, do opposite of above. | 198 | // Not connected, do opposite of above. |
| 212 | // | 199 | // |
| 213 | hMenu = GetMenu( hwnd ) ; | 200 | hMenu = GetMenu( hwnd ) ; |
| 214 | - EnableMenuItem( hMenu, ID_FILE_CONNECT, | ||
| 215 | - MF_ENABLED | MF_BYCOMMAND ) ; | ||
| 216 | - EnableMenuItem( hMenu, ID_FILE_DISCONNECT, | ||
| 217 | - MF_GRAYED | MF_DISABLED | MF_BYCOMMAND ) ; | ||
| 218 | - | ||
| 219 | - EnableMenuItem( hMenu, ID_TRANSFER_SENDFILETEXT, | ||
| 220 | - MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ) ; | ||
| 221 | - EnableMenuItem( hMenu, ID_TRANSFER_RECEIVEFILETEXT, | ||
| 222 | - MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ) ; | ||
| 223 | - EnableMenuItem( hMenu, ID_TRANSFER_SENDREPEATEDLY, | ||
| 224 | - MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ) ; | ||
| 225 | - EnableMenuItem( hMenu, ID_TRANSFER_ABORTSENDING, | ||
| 226 | - MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ) ; | ||
| 227 | - EnableMenuItem( hMenu, ID_TRANSFER_ABORTREPEATEDSENDING, | ||
| 228 | - MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ); | 201 | +// EnableMenuItem( hMenu, ID_FILE_DISCONNECT, MF_GRAYED | MF_DISABLED | MF_BYCOMMAND ) ; |
| 202 | +// EnableMenuItem( hMenu, ID_TRANSFER_SENDFILETEXT, MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ) ; | ||
| 203 | +// EnableMenuItem( hMenu, ID_TRANSFER_RECEIVEFILETEXT, MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ) ; | ||
| 204 | +// EnableMenuItem( hMenu, ID_TRANSFER_SENDREPEATEDLY, MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ) ; | ||
| 205 | +// EnableMenuItem( hMenu, ID_TRANSFER_ABORTSENDING, MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ) ; | ||
| 206 | +// EnableMenuItem( hMenu, ID_TRANSFER_ABORTREPEATEDSENDING, MF_DISABLED | MF_GRAYED | MF_BYCOMMAND ); | ||
| 229 | 207 | ||
| 230 | EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), TRUE); | 208 | EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), TRUE); |
| 231 | - EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_NOWRITINGCHK), TRUE); | ||
| 232 | - EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_NOREADINGCHK), TRUE); | ||
| 233 | - EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_NOEVENTSCHK), TRUE); | ||
| 234 | - EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_NOSTATUSCHK), TRUE); | ||
| 235 | - | ||
| 236 | - for (i = IDC_STATCTS; i <= IDC_STATRLSD; i++) { | ||
| 237 | - CheckDlgButton(ghWndStatusDlg, i, 0); | ||
| 238 | - EnableWindow( GetDlgItem(ghWndStatusDlg, i), FALSE ); | ||
| 239 | - } | ||
| 240 | - | ||
| 241 | - for (i = IDC_CTSHOLDCHK; i <= IDC_RXCHAREDIT; i++) { | ||
| 242 | - if (i != IDC_TXCHAREDIT && i != IDC_RXCHAREDIT) | ||
| 243 | - CheckDlgButton(ghWndStatusDlg, i, 0); | ||
| 244 | - else | ||
| 245 | - SetDlgItemInt(ghWndStatusDlg, i, 0, FALSE); | ||
| 246 | 209 | ||
| 247 | - EnableWindow( GetDlgItem(ghWndStatusDlg, i), FALSE); | ||
| 248 | - } | 210 | + //for (i = IDC_STATCTS; i <= IDC_STATRLSD; i++) |
| 211 | + //{ | ||
| 212 | + // CheckDlgButton(ghWndStatusDlg, i, 0); | ||
| 213 | + // EnableWindow( GetDlgItem(ghWndStatusDlg, i), FALSE ); | ||
| 214 | + //} | ||
| 215 | + //for (i = IDC_CTSHOLDCHK; i <= IDC_RXCHAREDIT; i++) | ||
| 216 | + //{ | ||
| 217 | + // if (i != IDC_TXCHAREDIT && i != IDC_RXCHAREDIT) | ||
| 218 | + // CheckDlgButton(ghWndStatusDlg, i, 0); | ||
| 219 | + // else | ||
| 220 | + // SetDlgItemInt(ghWndStatusDlg, i, 0, FALSE); | ||
| 221 | + // EnableWindow(GetDlgItem(ghWndStatusDlg, i), FALSE); | ||
| 222 | + //} | ||
| 223 | + | ||
| 224 | + | ||
| 249 | 225 | ||
| 250 | SetFocus(ghwndMain); | 226 | SetFocus(ghwndMain); |
| 251 | } | 227 | } |
| @@ -286,34 +262,14 @@ void UpdateTTYInfo() | @@ -286,34 +262,14 @@ void UpdateTTYInfo() | ||
| 286 | /*MessageBox(NULL, gszPort, "TEST---", MB_OK);*/ | 262 | /*MessageBox(NULL, gszPort, "TEST---", MB_OK);*/ |
| 287 | } | 263 | } |
| 288 | 264 | ||
| 289 | - BAUDRATE(TTYInfo) = GetdwTTYItem( ghWndToolbarDlg, | ||
| 290 | - IDC_BAUDCOMBO, | ||
| 291 | - szBaud, | ||
| 292 | - BaudTable, | ||
| 293 | - sizeof(BaudTable)/sizeof(BaudTable[0])); | ||
| 294 | - | ||
| 295 | - PARITY(TTYInfo) = GetbTTYItem( ghWndToolbarDlg, | ||
| 296 | - IDC_PARITYCOMBO, | ||
| 297 | - szParity, | ||
| 298 | - ParityTable, | ||
| 299 | - sizeof(ParityTable)/sizeof(ParityTable[0])); | ||
| 300 | - | ||
| 301 | - STOPBITS(TTYInfo) = GetbTTYItem( ghWndToolbarDlg, | ||
| 302 | - IDC_STOPBITSCOMBO, | ||
| 303 | - szStopBits, | ||
| 304 | - StopBitsTable, | ||
| 305 | - sizeof(StopBitsTable)/sizeof(StopBitsTable[0])); | ||
| 306 | - | ||
| 307 | - LOCALECHO(TTYInfo) = IsDlgButtonChecked(ghWndToolbarDlg, IDC_LOCALECHOCHK); | ||
| 308 | - BYTESIZE(TTYInfo) = GetDlgItemInt(ghWndToolbarDlg, IDC_DATABITSCOMBO, NULL, FALSE); | ||
| 309 | - NEWLINE(TTYInfo) = IsDlgButtonChecked(ghWndToolbarDlg, IDC_LFBTN); | ||
| 310 | - AUTOWRAP(TTYInfo) = IsDlgButtonChecked(ghWndToolbarDlg, IDC_AUTOWRAPCHK); | ||
| 311 | - DISPLAYERRORS(TTYInfo) = IsDlgButtonChecked(ghWndToolbarDlg, IDC_DISPLAYERRORSCHK); | ||
| 312 | - | ||
| 313 | - NOREADING(TTYInfo) = IsDlgButtonChecked(ghWndToolbarDlg, IDC_NOREADINGCHK); | ||
| 314 | - NOWRITING(TTYInfo) = IsDlgButtonChecked(ghWndToolbarDlg, IDC_NOWRITINGCHK); | ||
| 315 | - NOEVENTS(TTYInfo) = IsDlgButtonChecked(ghWndToolbarDlg, IDC_NOEVENTSCHK); | ||
| 316 | - NOSTATUS(TTYInfo) = IsDlgButtonChecked(ghWndToolbarDlg, IDC_NOSTATUSCHK); | 265 | + //BAUDRATE(TTYInfo) = GetdwTTYItem( ghWndToolbarDlg, IDC_BAUDCOMBO, szBaud, BaudTable, sizeof(BaudTable)/sizeof(BaudTable[0])); |
| 266 | + | ||
| 267 | + //PARITY(TTYInfo) = GetbTTYItem( ghWndToolbarDlg, IDC_PARITYCOMBO, szParity, ParityTable, sizeof(ParityTable)/sizeof(ParityTable[0])); | ||
| 268 | + | ||
| 269 | + //STOPBITS(TTYInfo) = GetbTTYItem( ghWndToolbarDlg, IDC_STOPBITSCOMBO, szStopBits, StopBitsTable, sizeof(StopBitsTable)/sizeof(StopBitsTable[0])); | ||
| 270 | + | ||
| 271 | + //BYTESIZE(TTYInfo) = GetDlgItemInt(ghWndToolbarDlg, IDC_DATABITSCOMBO, NULL, FALSE); | ||
| 272 | + | ||
| 317 | 273 | ||
| 318 | if (CONNECTED(TTYInfo)) // if connected, then update port state | 274 | if (CONNECTED(TTYInfo)) // if connected, then update port state |
| 319 | UpdateConnection(); | 275 | UpdateConnection(); |
| @@ -559,6 +515,7 @@ BOOL SettingsDlgInit( HWND hDlg ) | @@ -559,6 +515,7 @@ BOOL SettingsDlgInit( HWND hDlg ) | ||
| 559 | // fill port combo box and make initial selection | 515 | // fill port combo box and make initial selection |
| 560 | // | 516 | // |
| 561 | for (wCount = 0; wCount < wMaxCOM; wCount++) { | 517 | for (wCount = 0; wCount < wMaxCOM; wCount++) { |
| 518 | +#if 0//def __OPTEK_EDIT__ | ||
| 562 | //wsprintf( szBuffer, "%s%d", (LPSTR) szTemp, wCount + 1 ) ; | 519 | //wsprintf( szBuffer, "%s%d", (LPSTR) szTemp, wCount + 1 ) ; |
| 563 | if (cmdT[wCount]) | 520 | if (cmdT[wCount]) |
| 564 | { | 521 | { |
| @@ -566,6 +523,16 @@ BOOL SettingsDlgInit( HWND hDlg ) | @@ -566,6 +523,16 @@ BOOL SettingsDlgInit( HWND hDlg ) | ||
| 566 | SendDlgItemMessage( hDlg, IDC_PORTCOMBO, CB_ADDSTRING, 0, | 523 | SendDlgItemMessage( hDlg, IDC_PORTCOMBO, CB_ADDSTRING, 0, |
| 567 | (LPARAM) (LPSTR) szBuffer ) ; | 524 | (LPARAM) (LPSTR) szBuffer ) ; |
| 568 | } | 525 | } |
| 526 | +#else | ||
| 527 | + for (wCount = 0; wCount < 255; wCount++) | ||
| 528 | + { | ||
| 529 | + if (TTYInfo.unOpenedPortAry[wCount] == 0) | ||
| 530 | + continue;; | ||
| 531 | + wsprintf( szBuffer, "%s%d", (LPSTR) szTemp, TTYInfo.unOpenedPortAry[wCount] ) ; | ||
| 532 | + SendDlgItemMessage( hDlg, IDC_PORTCOMBO, CB_ADDSTRING, 0, | ||
| 533 | + (LPARAM) (LPSTR) szBuffer ) ; | ||
| 534 | + } | ||
| 535 | +#endif | ||
| 569 | } | 536 | } |
| 570 | 537 | ||
| 571 | SendDlgItemMessage( hDlg, IDC_PORTCOMBO, CB_SETCURSEL, | 538 | SendDlgItemMessage( hDlg, IDC_PORTCOMBO, CB_SETCURSEL, |
| @@ -576,55 +543,37 @@ BOOL SettingsDlgInit( HWND hDlg ) | @@ -576,55 +543,37 @@ BOOL SettingsDlgInit( HWND hDlg ) | ||
| 576 | // | 543 | // |
| 577 | // fill baud combo box and make initial selection | 544 | // fill baud combo box and make initial selection |
| 578 | // | 545 | // |
| 579 | - FillComboBox( GetDlgItem( hDlg, IDC_BAUDCOMBO ), | ||
| 580 | - szBaud, BaudTable, | ||
| 581 | - sizeof( BaudTable ) / sizeof( BaudTable[ 0 ] ), | ||
| 582 | - BAUDRATE( TTYInfo ) ) ; | 546 | + //FillComboBox( GetDlgItem( hDlg, IDC_BAUDCOMBO ), szBaud, BaudTable, sizeof( BaudTable ) / sizeof( BaudTable[ 0 ] ), BAUDRATE( TTYInfo ) ) ; |
| 583 | 547 | ||
| 584 | // | 548 | // |
| 585 | // fill data bits combo box and make initial selection | 549 | // fill data bits combo box and make initial selection |
| 586 | // | 550 | // |
| 587 | - for (wCount = 5; wCount < 9; wCount++) { | 551 | + for (wCount = 5; wCount < 9; wCount++) |
| 552 | + { | ||
| 588 | wsprintf( szBuffer, "%d", wCount ) ; | 553 | wsprintf( szBuffer, "%d", wCount ) ; |
| 589 | - wPosition = LOWORD( SendDlgItemMessage( hDlg, IDC_DATABITSCOMBO, | ||
| 590 | - CB_ADDSTRING, 0, | ||
| 591 | - (LPARAM) (LPSTR) szBuffer ) ) ; | 554 | + //wPosition = LOWORD( SendDlgItemMessage( hDlg, IDC_DATABITSCOMBO, CB_ADDSTRING, 0, (LPARAM) (LPSTR) szBuffer ) ) ; |
| 592 | 555 | ||
| 593 | // | 556 | // |
| 594 | // if wCount is current selection, tell the combo box | 557 | // if wCount is current selection, tell the combo box |
| 595 | // | 558 | // |
| 596 | - if (wCount == BYTESIZE( TTYInfo )) | ||
| 597 | - SendDlgItemMessage( hDlg, IDC_DATABITSCOMBO, CB_SETCURSEL, | ||
| 598 | - (WPARAM) wPosition, 0L ) ; | 559 | + //if (wCount == BYTESIZE( TTYInfo )) |
| 560 | + // SendDlgItemMessage( hDlg, IDC_DATABITSCOMBO, CB_SETCURSEL, (WPARAM) wPosition, 0L ) ; | ||
| 599 | } | 561 | } |
| 600 | 562 | ||
| 601 | // | 563 | // |
| 602 | // fill parity combo box and make initial selection | 564 | // fill parity combo box and make initial selection |
| 603 | // | 565 | // |
| 604 | - FillComboBox( GetDlgItem( hDlg, IDC_PARITYCOMBO ), | ||
| 605 | - szParity, ParityTable, | ||
| 606 | - sizeof( ParityTable ) / sizeof( ParityTable[ 0 ] ), | ||
| 607 | - PARITY( TTYInfo ) ) ; | 566 | + //FillComboBox( GetDlgItem( hDlg, IDC_PARITYCOMBO ), szParity, ParityTable, sizeof( ParityTable ) / sizeof( ParityTable[ 0 ] ), PARITY( TTYInfo ) ) ; |
| 608 | 567 | ||
| 609 | // | 568 | // |
| 610 | // fill stop bits combo box and make initial selection | 569 | // fill stop bits combo box and make initial selection |
| 611 | // | 570 | // |
| 612 | - FillComboBox( GetDlgItem( hDlg, IDC_STOPBITSCOMBO ), | ||
| 613 | - szStopBits, StopBitsTable, | ||
| 614 | - sizeof( StopBitsTable ) / sizeof ( StopBitsTable[ 0 ] ), | ||
| 615 | - STOPBITS( TTYInfo ) ) ; | 571 | + //FillComboBox( GetDlgItem( hDlg, IDC_STOPBITSCOMBO ), szStopBits, StopBitsTable, sizeof( StopBitsTable ) / sizeof ( StopBitsTable[ 0 ] ), STOPBITS( TTYInfo ) ) ; |
| 616 | // | 572 | // |
| 617 | // set check marks based on TTY data | 573 | // set check marks based on TTY data |
| 618 | // | 574 | // |
| 619 | - CheckDlgButton( hDlg, IDC_LOCALECHOCHK, LOCALECHO( TTYInfo ) ) ; | ||
| 620 | - CheckDlgButton( hDlg, IDC_DISPLAYERRORSCHK, DISPLAYERRORS( TTYInfo ) ); | ||
| 621 | - CheckDlgButton( hDlg, IDC_LFBTN, NEWLINE( TTYInfo ) ); | ||
| 622 | - CheckDlgButton( hDlg, IDC_AUTOWRAPCHK, AUTOWRAP( TTYInfo ) ); | ||
| 623 | 575 | ||
| 624 | - CheckDlgButton( hDlg, IDC_NOWRITINGCHK, NOWRITING( TTYInfo ) ); | ||
| 625 | - CheckDlgButton( hDlg, IDC_NOREADINGCHK, NOREADING( TTYInfo ) ); | ||
| 626 | - CheckDlgButton( hDlg, IDC_NOSTATUSCHK, NOSTATUS( TTYInfo ) ); | ||
| 627 | - CheckDlgButton( hDlg, IDC_NOEVENTSCHK, NOEVENTS( TTYInfo ) ); | 576 | + SetWindowText(GetDlgItem(ghWndToolbarDlg, IDC_STATIC_BINPATH), TTYInfo.szFileName); |
| 628 | 577 | ||
| 629 | return ( TRUE ) ; | 578 | return ( TRUE ) ; |
| 630 | 579 | ||
| @@ -717,7 +666,7 @@ BYTE GetbTTYItem(HWND hDlg, int idControl, char ** szString, DWORD * pTable, int | @@ -717,7 +666,7 @@ BYTE GetbTTYItem(HWND hDlg, int idControl, char ** szString, DWORD * pTable, int | ||
| 717 | return 0; | 666 | return 0; |
| 718 | } | 667 | } |
| 719 | 668 | ||
| 720 | -extern char szFileName[MAX_PATH]; | 669 | +//extern char szFileName[MAX_PATH]; |
| 721 | 670 | ||
| 722 | int szFileName_check(char* fileName) | 671 | int szFileName_check(char* fileName) |
| 723 | { | 672 | { |
| @@ -769,87 +718,111 @@ BOOL CALLBACK ToolbarProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | @@ -769,87 +718,111 @@ BOOL CALLBACK ToolbarProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) | ||
| 769 | { | 718 | { |
| 770 | switch(LOWORD(wParam)) | 719 | switch(LOWORD(wParam)) |
| 771 | { | 720 | { |
| 772 | - case IDC_FONTBTN: // font button pressed | ||
| 773 | - { | ||
| 774 | - CHOOSEFONT cf = {0}; | ||
| 775 | - LOGFONT lf; | ||
| 776 | - | ||
| 777 | - lf = LFTTYFONT(TTYInfo); | ||
| 778 | - cf.lStructSize = sizeof(CHOOSEFONT); | ||
| 779 | - cf.hwndOwner = hWndDlg; | ||
| 780 | - cf.lpLogFont = &lf; | ||
| 781 | - cf.rgbColors = FGCOLOR(TTYInfo); | ||
| 782 | - cf.Flags = CF_INITTOLOGFONTSTRUCT | CF_SCREENFONTS | CF_FIXEDPITCHONLY | \ | ||
| 783 | - CF_EFFECTS; | ||
| 784 | - | ||
| 785 | - if (!ChooseFont(&cf)) | 721 | + case IDC_BTN_STOPFLASH: |
| 722 | + TransferFileTextEnd(); | ||
| 786 | break; | 723 | break; |
| 787 | - | ||
| 788 | - InitNewFont(lf, cf.rgbColors); | ||
| 789 | - | ||
| 790 | - // | ||
| 791 | - // fix scroll bar sizes since we may have more or less pixels per | ||
| 792 | - // character now | ||
| 793 | - // | ||
| 794 | - SizeTTY(ghWndTTY, (WORD)XSIZE(TTYInfo), (WORD)YSIZE(TTYInfo)); | ||
| 795 | - | ||
| 796 | - // | ||
| 797 | - // repaint screen contents | ||
| 798 | - // | ||
| 799 | - InvalidateRect(ghWndTTY, NULL, TRUE); | ||
| 800 | - | ||
| 801 | - // | ||
| 802 | - // kill old cursor | ||
| 803 | - // | ||
| 804 | - KillTTYFocus(ghWndTTY); | ||
| 805 | - | ||
| 806 | - // | ||
| 807 | - // create new cursor | ||
| 808 | - // | ||
| 809 | - SetTTYFocus(ghWndTTY); | ||
| 810 | - } | ||
| 811 | - fRet = FALSE; | ||
| 812 | - break; | ||
| 813 | - | ||
| 814 | - case IDC_SENDBTN: // send button pressed | ||
| 815 | - if (!EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), FALSE)) | 724 | + case IDC_BTN_CONNECT_UART: |
| 725 | + if (CONNECTED(TTYInfo)) | ||
| 816 | { | 726 | { |
| 817 | - EnableWindow(GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), TRUE); | ||
| 818 | - MessageBox(NULL,"Please connect port!\r\n","Warring",MB_OK); | ||
| 819 | - fRet = FALSE; | ||
| 820 | - break; | ||
| 821 | - } | ||
| 822 | - | ||
| 823 | - if (szFileName_check(szFileName)) | ||
| 824 | - { | ||
| 825 | - EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_SENDBTN), FALSE); | ||
| 826 | - // EnableWindow(GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), FALSE); | ||
| 827 | - TransferFileTextStart(szFileName); | 727 | + if (BreakDownCommPort()) |
| 728 | + ChangeConnection(ghWndToolbarDlg, CONNECTED(TTYInfo)); | ||
| 729 | + SetWindowText(GetDlgItem(ghWndToolbarDlg, IDC_BTN_CONNECT_UART), "Connect"); | ||
| 828 | } | 730 | } |
| 829 | else | 731 | else |
| 830 | - { | ||
| 831 | - /*MessageBox(NULL,"-_-","test3", MB_OK);*/ | ||
| 832 | - ErrorReporter("Please select file!\r\n"); | 732 | + { |
| 733 | + if (SetupCommPort() != NULL) | ||
| 734 | + ChangeConnection(ghWndToolbarDlg, CONNECTED(TTYInfo)); | ||
| 735 | + SetWindowText(GetDlgItem(ghWndToolbarDlg, IDC_BTN_CONNECT_UART), "Disconnect"); | ||
| 833 | } | 736 | } |
| 834 | - | ||
| 835 | - fRet = FALSE; | ||
| 836 | - break; | ||
| 837 | - | ||
| 838 | - case IDC_COMMEVENTSBTN: // comm events button pressed | ||
| 839 | - DialogBox(ghInst, MAKEINTRESOURCE(IDD_COMMEVENTSDLG), ghwndMain, CommEventsProc); | ||
| 840 | - fRet = FALSE; | ||
| 841 | - break; | ||
| 842 | - | ||
| 843 | - case IDC_FLOWCONTROLBTN: | ||
| 844 | - DialogBox(ghInst, MAKEINTRESOURCE(IDD_FLOWCONTROLDLG), ghwndMain, FlowControlProc); | ||
| 845 | - fRet = FALSE; | ||
| 846 | - break; | ||
| 847 | - | ||
| 848 | - case IDC_TIMEOUTSBTN: | ||
| 849 | - DialogBox(ghInst, MAKEINTRESOURCE(IDD_TIMEOUTSDLG), ghwndMain, TimeoutsProc); | ||
| 850 | - break; | ||
| 851 | - fRet = FALSE; | 737 | + break; |
| 738 | + //case IDC_FONTBTN: // font button pressed | ||
| 739 | + //CHOOSEFONT cf = {0}; | ||
| 740 | + //LOGFONT lf; | ||
| 741 | + //lf = LFTTYFONT(TTYInfo); | ||
| 742 | + //cf.lStructSize = sizeof(CHOOSEFONT); | ||
| 743 | + //cf.hwndOwner = hWndDlg; | ||
| 744 | + //cf.lpLogFont = &lf; | ||
| 745 | + //cf.rgbColors = FGCOLOR(TTYInfo); | ||
| 746 | + //cf.Flags = CF_INITTOLOGFONTSTRUCT | CF_SCREENFONTS | CF_FIXEDPITCHONLY |CF_EFFECTS; | ||
| 747 | + //if (!ChooseFont(&cf)) break; | ||
| 748 | + //InitNewFont(lf, cf.rgbColors); | ||
| 749 | + //SizeTTY(ghWndMessage, (WORD)XSIZE(TTYInfo), (WORD)YSIZE(TTYInfo)); | ||
| 750 | + //InvalidateRect(ghWndMessage, NULL, TRUE); | ||
| 751 | + //KillTTYFocus(ghWndMessage); | ||
| 752 | + //SetTTYFocus(ghWndMessage); | ||
| 753 | + //fRet = FALSE; | ||
| 754 | + //break; | ||
| 755 | + case IDC_BUTTON2_SEC_BINFILE: | ||
| 756 | + { | ||
| 757 | + char *szFilter = "bin Files\0*.bin\0"; | ||
| 758 | + OPENFILENAME ofn = { 0 }; | ||
| 759 | + ofn.lStructSize = sizeof(OPENFILENAME); | ||
| 760 | + ofn.hwndOwner = ghWndToolbarDlg; | ||
| 761 | + ofn.lpstrFilter = szFilter; | ||
| 762 | + ofn.lpstrFile = TTYInfo.szFileName; | ||
| 763 | + ofn.nMaxFile = MAX_PATH; | ||
| 764 | + ofn.lpstrTitle = "Select File"; | ||
| 765 | + ofn.Flags = OFN_FILEMUSTEXIST; | ||
| 766 | + if (!GetOpenFileName(&ofn)) return; | ||
| 767 | + if (strlen(TTYInfo.szFileName) != 0) | ||
| 768 | + { | ||
| 769 | + //DWORD dwPacketSize, dwMaxPackets; | ||
| 770 | + SetWindowText(GetDlgItem(ghWndToolbarDlg, IDC_STATIC_BINPATH), TTYInfo.szFileName); | ||
| 771 | + //ShowWindow(GetDlgItem(hWndDlg, IDC_BUTTON2_SEC_BINFILE), 0); | ||
| 772 | + TTYInfo.hFile = OpenTheFile(TTYInfo.szFileName); | ||
| 773 | + if (TTYInfo.hFile == INVALID_HANDLE_VALUE) | ||
| 774 | + { | ||
| 775 | + memcpy(TTYInfo.szFileName,0,MAX_PATH); | ||
| 776 | + return; | ||
| 777 | + } | ||
| 778 | + // set up transfer metrics | ||
| 779 | + if (!GetTransferSizes(TTYInfo.hFile, &TTYInfo.dwPacketSize, &TTYInfo.dwMaxPackets, &TTYInfo.dwFileSize)) | ||
| 780 | + { | ||
| 781 | + memcpy(TTYInfo.szFileName,0,MAX_PATH); | ||
| 782 | + return; | ||
| 783 | + } | ||
| 784 | + memset(TTYInfo.buff_Binfile,0,TTYInfo.dwFileSize); | ||
| 785 | + ReadFile(TTYInfo.hFile, TTYInfo.buff_Binfile, TTYInfo.dwFileSize, &TTYInfo.dwRead, NULL); | ||
| 786 | + if (TTYInfo.dwRead != TTYInfo.dwFileSize) | ||
| 787 | + ErrorReporter("file err!\r\n"); | ||
| 788 | + else | ||
| 789 | + OutputAclorBuffer("Load file sucess!\r\n",RGB(255, 255, 255)); | ||
| 790 | + } | ||
| 791 | + } | ||
| 852 | break; | 792 | break; |
| 793 | + //case IDC_SENDBTN: // send button pressed | ||
| 794 | + // if (!EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), FALSE)) | ||
| 795 | + // { | ||
| 796 | + // EnableWindow(GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), TRUE); | ||
| 797 | + // MessageBox(NULL,"Please connect port!\r\n","Warring",MB_OK); | ||
| 798 | + // fRet = FALSE; | ||
| 799 | + // break; | ||
| 800 | + // } | ||
| 801 | + // if (strlen(TTYInfo.szFileName) >0) | ||
| 802 | + // { | ||
| 803 | + // EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_SENDBTN), FALSE); | ||
| 804 | + // TransferFileTextStart(TTYInfo.szFileName); | ||
| 805 | + // } | ||
| 806 | + // else | ||
| 807 | + // ErrorReporter("Please select file!\r\n"); | ||
| 808 | + // fRet = FALSE; | ||
| 809 | + //break; | ||
| 810 | + // | ||
| 811 | + //case IDC_COMMEVENTSBTN: // comm events button pressed | ||
| 812 | + //DialogBox(ghInst, MAKEINTRESOURCE(IDD_COMMEVENTSDLG), ghwndMain, CommEventsProc); | ||
| 813 | + //fRet = FALSE; | ||
| 814 | + //break; | ||
| 815 | + | ||
| 816 | + //case IDC_FLOWCONTROLBTN: | ||
| 817 | + //DialogBox(ghInst, MAKEINTRESOURCE(IDD_FLOWCONTROLDLG), ghwndMain, FlowControlProc); | ||
| 818 | + //fRet = FALSE; | ||
| 819 | + //break; | ||
| 820 | + | ||
| 821 | + //case IDC_TIMEOUTSBTN: | ||
| 822 | + //DialogBox(ghInst, MAKEINTRESOURCE(IDD_TIMEOUTSDLG), ghwndMain, TimeoutsProc); | ||
| 823 | + //break; | ||
| 824 | + //fRet = FALSE; | ||
| 825 | + //break; | ||
| 853 | 826 | ||
| 854 | default: // some other control has been modified | 827 | default: // some other control has been modified |
| 855 | if (CONNECTED(TTYInfo)) | 828 | if (CONNECTED(TTYInfo)) |
| @@ -1058,46 +1031,46 @@ HISTORY: Date: Author: Comment: | @@ -1058,46 +1031,46 @@ HISTORY: Date: Author: Comment: | ||
| 1058 | 10/27/95 AllenD Wrote it | 1031 | 10/27/95 AllenD Wrote it |
| 1059 | 1032 | ||
| 1060 | -----------------------------------------------------------------------------*/ | 1033 | -----------------------------------------------------------------------------*/ |
| 1061 | -BOOL CALLBACK CommEventsProc(HWND hdlg, UINT uMessage, WPARAM wparam, LPARAM lparam) | ||
| 1062 | -{ | ||
| 1063 | - switch(uMessage) | ||
| 1064 | - { | ||
| 1065 | - case WM_INITDIALOG: // init controls | ||
| 1066 | - InitCommEventsDlg(hdlg, EVENTFLAGS(TTYInfo)); | ||
| 1067 | - break; | ||
| 1068 | - | ||
| 1069 | - case WM_COMMAND: | ||
| 1070 | - switch(LOWORD(wparam)) | ||
| 1071 | - { | ||
| 1072 | - case IDOK: | ||
| 1073 | - SaveCommEventsDlg(hdlg); | ||
| 1074 | - | ||
| 1075 | - // | ||
| 1076 | - // FALL THROUGH | ||
| 1077 | - // | ||
| 1078 | - | ||
| 1079 | - case IDCANCEL: | ||
| 1080 | - EndDialog(hdlg, LOWORD(wparam)); | ||
| 1081 | - return TRUE; | ||
| 1082 | - | ||
| 1083 | - case IDC_DEFAULTSBTN: | ||
| 1084 | - InitCommEventsDlg(hdlg, EVENTFLAGS_DEFAULT); | ||
| 1085 | - return TRUE; | ||
| 1086 | - | ||
| 1087 | - case IDC_EVRXFLAGBTN: | ||
| 1088 | - EnableWindow(GetDlgItem(hdlg, IDC_FLAGEDIT), IsDlgButtonChecked(hdlg, IDC_EVRXFLAGBTN)); | ||
| 1089 | - EnableWindow(GetDlgItem(hdlg, IDC_FLAGCHAR), IsDlgButtonChecked(hdlg, IDC_EVRXFLAGBTN)); | ||
| 1090 | - return TRUE; | ||
| 1091 | - | ||
| 1092 | - case IDC_FLAGEDIT: | ||
| 1093 | - GetHexControl(hdlg, IDC_FLAGEDIT, IDC_FLAGCHAR); | ||
| 1094 | - return TRUE; | ||
| 1095 | - } | ||
| 1096 | - break; | ||
| 1097 | - } | ||
| 1098 | - | ||
| 1099 | - return FALSE; | ||
| 1100 | -} | 1034 | +//BOOL CALLBACK CommEventsProc(HWND hdlg, UINT uMessage, WPARAM wparam, LPARAM lparam) |
| 1035 | +//{ | ||
| 1036 | +// switch(uMessage) | ||
| 1037 | +// { | ||
| 1038 | +// case WM_INITDIALOG: // init controls | ||
| 1039 | +// InitCommEventsDlg(hdlg, EVENTFLAGS(TTYInfo)); | ||
| 1040 | +// break; | ||
| 1041 | +// | ||
| 1042 | +// case WM_COMMAND: | ||
| 1043 | +// switch(LOWORD(wparam)) | ||
| 1044 | +// { | ||
| 1045 | +// case IDOK: | ||
| 1046 | +// SaveCommEventsDlg(hdlg); | ||
| 1047 | +// | ||
| 1048 | +// // | ||
| 1049 | +// // FALL THROUGH | ||
| 1050 | +// // | ||
| 1051 | +// | ||
| 1052 | +// case IDCANCEL: | ||
| 1053 | +// EndDialog(hdlg, LOWORD(wparam)); | ||
| 1054 | +// return TRUE; | ||
| 1055 | +// | ||
| 1056 | +// case IDC_DEFAULTSBTN: | ||
| 1057 | +// InitCommEventsDlg(hdlg, EVENTFLAGS_DEFAULT); | ||
| 1058 | +// return TRUE; | ||
| 1059 | +// | ||
| 1060 | +// case IDC_EVRXFLAGBTN: | ||
| 1061 | +// EnableWindow(GetDlgItem(hdlg, IDC_FLAGEDIT), IsDlgButtonChecked(hdlg, IDC_EVRXFLAGBTN)); | ||
| 1062 | +// EnableWindow(GetDlgItem(hdlg, IDC_FLAGCHAR), IsDlgButtonChecked(hdlg, IDC_EVRXFLAGBTN)); | ||
| 1063 | +// return TRUE; | ||
| 1064 | +// | ||
| 1065 | +// case IDC_FLAGEDIT: | ||
| 1066 | +// GetHexControl(hdlg, IDC_FLAGEDIT, IDC_FLAGCHAR); | ||
| 1067 | +// return TRUE; | ||
| 1068 | +// } | ||
| 1069 | +// break; | ||
| 1070 | +// } | ||
| 1071 | +// | ||
| 1072 | +// return FALSE; | ||
| 1073 | +//} | ||
| 1101 | 1074 | ||
| 1102 | /*----------------------------------------------------------------------------- | 1075 | /*----------------------------------------------------------------------------- |
| 1103 | 1076 | ||
| @@ -1340,47 +1313,47 @@ HISTORY: Date: Author: Comment: | @@ -1340,47 +1313,47 @@ HISTORY: Date: Author: Comment: | ||
| 1340 | 10/27/95 AllenD Wrote it | 1313 | 10/27/95 AllenD Wrote it |
| 1341 | 1314 | ||
| 1342 | -----------------------------------------------------------------------------*/ | 1315 | -----------------------------------------------------------------------------*/ |
| 1343 | -BOOL CALLBACK FlowControlProc(HWND hdlg, UINT uMessage, WPARAM wparam, LPARAM lparam) | ||
| 1344 | -{ | ||
| 1345 | - switch(uMessage) | ||
| 1346 | - { | ||
| 1347 | - case WM_INITDIALOG: // init controls | ||
| 1348 | - InitFlowControlDlg(hdlg); | ||
| 1349 | - break; | ||
| 1350 | - | ||
| 1351 | - case WM_COMMAND: | ||
| 1352 | - switch(LOWORD(wparam)) | ||
| 1353 | - { | ||
| 1354 | - case IDOK: | ||
| 1355 | - SaveFlowControlDlg(hdlg); | ||
| 1356 | - // | ||
| 1357 | - // FALL THROUGH | ||
| 1358 | - // | ||
| 1359 | - | ||
| 1360 | - case IDCANCEL: | ||
| 1361 | - EndDialog(hdlg, LOWORD(wparam)); | ||
| 1362 | - return TRUE; | ||
| 1363 | - | ||
| 1364 | - case IDC_RTSCTSBTN: | ||
| 1365 | - case IDC_DTRDSRBTN: | ||
| 1366 | - case IDC_XOFFXONBTN: | ||
| 1367 | - case IDC_NONEBTN: | ||
| 1368 | - FlowDefault(hdlg, LOWORD(wparam)); | ||
| 1369 | - return TRUE; | ||
| 1370 | - | ||
| 1371 | - case IDC_XONCHAREDIT: | ||
| 1372 | - GetHexControl(hdlg, IDC_XONCHAREDIT, IDC_XONCHARDISP); | ||
| 1373 | - return TRUE; | ||
| 1374 | - | ||
| 1375 | - case IDC_XOFFCHAREDIT: | ||
| 1376 | - GetHexControl(hdlg, IDC_XOFFCHAREDIT, IDC_XOFFCHARDISP); | ||
| 1377 | - return TRUE; | ||
| 1378 | - } | ||
| 1379 | - break; | ||
| 1380 | - } | ||
| 1381 | - | ||
| 1382 | - return FALSE; | ||
| 1383 | -} | 1316 | +//BOOL CALLBACK FlowControlProc(HWND hdlg, UINT uMessage, WPARAM wparam, LPARAM lparam) |
| 1317 | +//{ | ||
| 1318 | +// switch(uMessage) | ||
| 1319 | +// { | ||
| 1320 | +// case WM_INITDIALOG: // init controls | ||
| 1321 | +// InitFlowControlDlg(hdlg); | ||
| 1322 | +// break; | ||
| 1323 | +// | ||
| 1324 | +// case WM_COMMAND: | ||
| 1325 | +// switch(LOWORD(wparam)) | ||
| 1326 | +// { | ||
| 1327 | +// case IDOK: | ||
| 1328 | +// SaveFlowControlDlg(hdlg); | ||
| 1329 | +// // | ||
| 1330 | +// // FALL THROUGH | ||
| 1331 | +// // | ||
| 1332 | +// | ||
| 1333 | +// case IDCANCEL: | ||
| 1334 | +// EndDialog(hdlg, LOWORD(wparam)); | ||
| 1335 | +// return TRUE; | ||
| 1336 | +// | ||
| 1337 | +// case IDC_RTSCTSBTN: | ||
| 1338 | +// case IDC_DTRDSRBTN: | ||
| 1339 | +// case IDC_XOFFXONBTN: | ||
| 1340 | +// case IDC_NONEBTN: | ||
| 1341 | +// FlowDefault(hdlg, LOWORD(wparam)); | ||
| 1342 | +// return TRUE; | ||
| 1343 | +// | ||
| 1344 | +// case IDC_XONCHAREDIT: | ||
| 1345 | +// GetHexControl(hdlg, IDC_XONCHAREDIT, IDC_XONCHARDISP); | ||
| 1346 | +// return TRUE; | ||
| 1347 | +// | ||
| 1348 | +// case IDC_XOFFCHAREDIT: | ||
| 1349 | +// GetHexControl(hdlg, IDC_XOFFCHAREDIT, IDC_XOFFCHARDISP); | ||
| 1350 | +// return TRUE; | ||
| 1351 | +// } | ||
| 1352 | +// break; | ||
| 1353 | +// } | ||
| 1354 | +// | ||
| 1355 | +// return FALSE; | ||
| 1356 | +//} | ||
| 1384 | 1357 | ||
| 1385 | /*----------------------------------------------------------------------------- | 1358 | /*----------------------------------------------------------------------------- |
| 1386 | 1359 | ||
| @@ -1482,37 +1455,37 @@ HISTORY: Date: Author: Comment: | @@ -1482,37 +1455,37 @@ HISTORY: Date: Author: Comment: | ||
| 1482 | 10/27/95 AllenD Wrote it | 1455 | 10/27/95 AllenD Wrote it |
| 1483 | 1456 | ||
| 1484 | -----------------------------------------------------------------------------*/ | 1457 | -----------------------------------------------------------------------------*/ |
| 1485 | -BOOL CALLBACK TimeoutsProc(HWND hdlg, UINT uMessage, WPARAM wparam, LPARAM lparam) | ||
| 1486 | -{ | ||
| 1487 | - switch(uMessage) | ||
| 1488 | - { | ||
| 1489 | - case WM_INITDIALOG: // init controls | ||
| 1490 | - InitTimeoutsDlg(hdlg, TIMEOUTSNEW(TTYInfo)); | ||
| 1491 | - break; | ||
| 1492 | - | ||
| 1493 | - case WM_COMMAND: | ||
| 1494 | - switch(LOWORD(wparam)) | ||
| 1495 | - { | ||
| 1496 | - case IDOK: | ||
| 1497 | - SaveTimeoutsDlg(hdlg); | ||
| 1498 | - | ||
| 1499 | - // | ||
| 1500 | - // FALL THROUGH | ||
| 1501 | - // | ||
| 1502 | - | ||
| 1503 | - case IDCANCEL: | ||
| 1504 | - EndDialog(hdlg, LOWORD(wparam)); | ||
| 1505 | - return TRUE; | ||
| 1506 | - | ||
| 1507 | - case IDC_DEFAULTSBTN: | ||
| 1508 | - InitTimeoutsDlg(hdlg, gTimeoutsDefault); | ||
| 1509 | - return TRUE; | ||
| 1510 | - } | ||
| 1511 | - break; | ||
| 1512 | - } | ||
| 1513 | - | ||
| 1514 | - return FALSE; | ||
| 1515 | -} | 1458 | +//BOOL CALLBACK TimeoutsProc(HWND hdlg, UINT uMessage, WPARAM wparam, LPARAM lparam) |
| 1459 | +//{ | ||
| 1460 | +// switch(uMessage) | ||
| 1461 | +// { | ||
| 1462 | +// case WM_INITDIALOG: // init controls | ||
| 1463 | +// InitTimeoutsDlg(hdlg, TIMEOUTSNEW(TTYInfo)); | ||
| 1464 | +// break; | ||
| 1465 | +// | ||
| 1466 | +// case WM_COMMAND: | ||
| 1467 | +// switch(LOWORD(wparam)) | ||
| 1468 | +// { | ||
| 1469 | +// case IDOK: | ||
| 1470 | +// SaveTimeoutsDlg(hdlg); | ||
| 1471 | +// | ||
| 1472 | +// // | ||
| 1473 | +// // FALL THROUGH | ||
| 1474 | +// // | ||
| 1475 | +// | ||
| 1476 | +// case IDCANCEL: | ||
| 1477 | +// EndDialog(hdlg, LOWORD(wparam)); | ||
| 1478 | +// return TRUE; | ||
| 1479 | +// | ||
| 1480 | +// case IDC_DEFAULTSBTN: | ||
| 1481 | +// InitTimeoutsDlg(hdlg, gTimeoutsDefault); | ||
| 1482 | +// return TRUE; | ||
| 1483 | +// } | ||
| 1484 | +// break; | ||
| 1485 | +// } | ||
| 1486 | +// | ||
| 1487 | +// return FALSE; | ||
| 1488 | +//} | ||
| 1516 | 1489 | ||
| 1517 | BOOL CALLBACK GetADWORDProc(HWND hDlg, UINT uMessage, WPARAM wParam, LPARAM lParam) | 1490 | BOOL CALLBACK GetADWORDProc(HWND hDlg, UINT uMessage, WPARAM wParam, LPARAM lParam) |
| 1518 | { | 1491 | { |
| @@ -127,34 +127,37 @@ BOOL CALLBACK StatusDlgProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara | @@ -127,34 +127,37 @@ BOOL CALLBACK StatusDlgProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara | ||
| 127 | SendMessage(GetDlgItem(hWndDlg, IDC_STATUSEDIT), WM_SETFONT, (WPARAM)ghFontStatus, 0); | 127 | SendMessage(GetDlgItem(hWndDlg, IDC_STATUSEDIT), WM_SETFONT, (WPARAM)ghFontStatus, 0); |
| 128 | InitStatusMessage(); | 128 | InitStatusMessage(); |
| 129 | break; | 129 | break; |
| 130 | + case WM_SIZE: | ||
| 131 | + MoveWindow(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); | ||
| 132 | + break; | ||
| 130 | 133 | ||
| 131 | case WM_COMMAND: | 134 | case WM_COMMAND: |
| 132 | { | 135 | { |
| 133 | switch(LOWORD(wParam)) | 136 | switch(LOWORD(wParam)) |
| 134 | { | 137 | { |
| 135 | case IDC_ABORTBTN: | 138 | case IDC_ABORTBTN: |
| 136 | - SendMessage(ghwndMain, WM_COMMAND, ID_TRANSFER_ABORTSENDING, MAKELPARAM(IDC_ABORTBTN,0) ); | 139 | + //SendMessage(ghwndMain, WM_COMMAND, ID_TRANSFER_ABORTSENDING, MAKELPARAM(IDC_ABORTBTN,0) ); |
| 137 | fRet = TRUE; | 140 | fRet = TRUE; |
| 138 | break; | 141 | break; |
| 139 | 142 | ||
| 140 | - case IDC_STATCTS: | ||
| 141 | - case IDC_STATDSR: | ||
| 142 | - case IDC_STATRING: | ||
| 143 | - case IDC_STATRLSD: | ||
| 144 | - CheckModemStatus(TRUE); | ||
| 145 | - fRet = TRUE; | ||
| 146 | - break; | ||
| 147 | - | ||
| 148 | - case IDC_CTSHOLDCHK: | ||
| 149 | - case IDC_DSRHOLDCHK: | ||
| 150 | - case IDC_RLSDHOLDCHK: | ||
| 151 | - case IDC_XOFFHOLDCHK: | ||
| 152 | - case IDC_XOFFSENTCHK: | ||
| 153 | - case IDC_EOFSENTCHK: | ||
| 154 | - case IDC_TXIMCHK: | ||
| 155 | - CheckComStat(TRUE); | ||
| 156 | - fRet = TRUE; | ||
| 157 | - break; | 143 | + //case IDC_STATCTS: |
| 144 | + //case IDC_STATDSR: | ||
| 145 | + //case IDC_STATRING: | ||
| 146 | + //case IDC_STATRLSD: | ||
| 147 | + // CheckModemStatus(TRUE); | ||
| 148 | + // fRet = TRUE; | ||
| 149 | + // break; | ||
| 150 | + | ||
| 151 | + //case IDC_CTSHOLDCHK: | ||
| 152 | + //case IDC_DSRHOLDCHK: | ||
| 153 | + //case IDC_RLSDHOLDCHK: | ||
| 154 | + //case IDC_XOFFHOLDCHK: | ||
| 155 | + //case IDC_XOFFSENTCHK: | ||
| 156 | + //case IDC_EOFSENTCHK: | ||
| 157 | + //case IDC_TXIMCHK: | ||
| 158 | + // CheckComStat(TRUE); | ||
| 159 | + // fRet = TRUE; | ||
| 160 | + // break; | ||
| 158 | 161 | ||
| 159 | default: | 162 | default: |
| 160 | break; | 163 | break; |
| @@ -375,8 +378,8 @@ void ReportModemStatus(DWORD dwModemStatus) | @@ -375,8 +378,8 @@ void ReportModemStatus(DWORD dwModemStatus) | ||
| 375 | fRING = fStat[2] = MS_RING_ON & dwModemStatus; | 378 | fRING = fStat[2] = MS_RING_ON & dwModemStatus; |
| 376 | fRLSD = fStat[3] = MS_RLSD_ON & dwModemStatus; | 379 | fRLSD = fStat[3] = MS_RLSD_ON & dwModemStatus; |
| 377 | 380 | ||
| 378 | - for (i = IDC_STATCTS; i <= IDC_STATRLSD; i++) | ||
| 379 | - CheckDlgButton(ghWndStatusDlg, i, fStat[i-IDC_STATCTS] ? 1 : 0); | 381 | + //for (i = IDC_STATCTS; i <= IDC_STATRLSD; i++) |
| 382 | + // CheckDlgButton(ghWndStatusDlg, i, fStat[i-IDC_STATCTS] ? 1 : 0); | ||
| 380 | 383 | ||
| 381 | return; | 384 | return; |
| 382 | } | 385 | } |
| @@ -441,17 +444,17 @@ HISTORY: Date: Author: Comment: | @@ -441,17 +444,17 @@ HISTORY: Date: Author: Comment: | ||
| 441 | -----------------------------------------------------------------------------*/ | 444 | -----------------------------------------------------------------------------*/ |
| 442 | void ReportComStat(COMSTAT ComStat) | 445 | void ReportComStat(COMSTAT ComStat) |
| 443 | { | 446 | { |
| 444 | - CheckDlgButton(ghWndStatusDlg, IDC_CTSHOLDCHK, ComStat.fCtsHold); | ||
| 445 | - CheckDlgButton(ghWndStatusDlg, IDC_DSRHOLDCHK, ComStat.fDsrHold); | ||
| 446 | - CheckDlgButton(ghWndStatusDlg, IDC_RLSDHOLDCHK, ComStat.fRlsdHold); | ||
| 447 | - CheckDlgButton(ghWndStatusDlg, IDC_XOFFHOLDCHK, ComStat.fXoffHold); | ||
| 448 | - CheckDlgButton(ghWndStatusDlg, IDC_XOFFSENTCHK, ComStat.fXoffSent); | ||
| 449 | - CheckDlgButton(ghWndStatusDlg, IDC_EOFSENTCHK, ComStat.fEof); | ||
| 450 | - CheckDlgButton(ghWndStatusDlg, IDC_TXIMCHK, ComStat.fTxim); | ||
| 451 | - | ||
| 452 | - SetDlgItemInt(ghWndStatusDlg, IDC_TXCHAREDIT, ComStat.cbOutQue, FALSE); | ||
| 453 | - SetDlgItemInt(ghWndStatusDlg, IDC_RXCHAREDIT, ComStat.cbInQue, FALSE); | ||
| 454 | - | 447 | +// CheckDlgButton(ghWndStatusDlg, IDC_CTSHOLDCHK, ComStat.fCtsHold); |
| 448 | +// CheckDlgButton(ghWndStatusDlg, IDC_DSRHOLDCHK, ComStat.fDsrHold); | ||
| 449 | +// CheckDlgButton(ghWndStatusDlg, IDC_RLSDHOLDCHK, ComStat.fRlsdHold); | ||
| 450 | +// CheckDlgButton(ghWndStatusDlg, IDC_XOFFHOLDCHK, ComStat.fXoffHold); | ||
| 451 | +// CheckDlgButton(ghWndStatusDlg, IDC_XOFFSENTCHK, ComStat.fXoffSent); | ||
| 452 | +// CheckDlgButton(ghWndStatusDlg, IDC_EOFSENTCHK, ComStat.fEof); | ||
| 453 | +// CheckDlgButton(ghWndStatusDlg, IDC_TXIMCHK, ComStat.fTxim); | ||
| 454 | +// | ||
| 455 | +// SetDlgItemInt(ghWndStatusDlg, IDC_TXCHAREDIT, ComStat.cbOutQue, FALSE); | ||
| 456 | +// SetDlgItemInt(ghWndStatusDlg, IDC_RXCHAREDIT, ComStat.cbInQue, FALSE); | ||
| 457 | +// | ||
| 455 | return; | 458 | return; |
| 456 | } | 459 | } |
| 457 | 460 |
| @@ -40,7 +40,6 @@ | @@ -40,7 +40,6 @@ | ||
| 40 | // | 40 | // |
| 41 | // Globals used in this file only | 41 | // Globals used in this file only |
| 42 | // | 42 | // |
| 43 | -HANDLE hFile; | ||
| 44 | HANDLE hTransferAbortEvent; | 43 | HANDLE hTransferAbortEvent; |
| 45 | HANDLE hTransferThread; | 44 | HANDLE hTransferThread; |
| 46 | UINT uTimerId; | 45 | UINT uTimerId; |
| @@ -84,28 +83,24 @@ void TransferRepeatCreate(LPCTSTR lpszFileName, DWORD dwFrequency) | @@ -84,28 +83,24 @@ void TransferRepeatCreate(LPCTSTR lpszFileName, DWORD dwFrequency) | ||
| 84 | { | 83 | { |
| 85 | HMENU hMenu; | 84 | HMENU hMenu; |
| 86 | UINT MenuFlags ; | 85 | UINT MenuFlags ; |
| 87 | - DWORD dwFileSize; | ||
| 88 | - DWORD dwMaxPackets; | ||
| 89 | - DWORD dwPacketSize; | ||
| 90 | - DWORD dwRead; | 86 | + //DWORD dwFileSize; |
| 87 | + //DWORD dwMaxPackets; | ||
| 88 | + //DWORD dwPacketSize; | ||
| 89 | + //DWORD dwRead; | ||
| 91 | 90 | ||
| 92 | // | 91 | // |
| 93 | // open the file | 92 | // open the file |
| 94 | // | 93 | // |
| 95 | - hFile = OpenTheFile(lpszFileName); | ||
| 96 | - if (hFile == INVALID_HANDLE_VALUE) | ||
| 97 | - return; | ||
| 98 | - | ||
| 99 | // | 94 | // |
| 100 | // modify transfer menu | 95 | // modify transfer menu |
| 101 | // | 96 | // |
| 102 | hMenu = GetMenu(ghwndMain); | 97 | hMenu = GetMenu(ghwndMain); |
| 103 | MenuFlags = MF_DISABLED | MF_GRAYED; | 98 | MenuFlags = MF_DISABLED | MF_GRAYED; |
| 104 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); | ||
| 105 | - EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 106 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | ||
| 107 | - EnableMenuItem(hMenu, ID_TRANSFER_ABORTREPEATEDSENDING, MF_ENABLED); | ||
| 108 | - EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | 99 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 100 | + //EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 101 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | ||
| 102 | + //EnableMenuItem(hMenu, ID_TRANSFER_ABORTREPEATEDSENDING, MF_ENABLED); | ||
| 103 | + //EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | ||
| 109 | 104 | ||
| 110 | // | 105 | // |
| 111 | // enable abort button and progress bar | 106 | // enable abort button and progress bar |
| @@ -113,13 +108,9 @@ void TransferRepeatCreate(LPCTSTR lpszFileName, DWORD dwFrequency) | @@ -113,13 +108,9 @@ void TransferRepeatCreate(LPCTSTR lpszFileName, DWORD dwFrequency) | ||
| 113 | SetWindowText(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), "Abort Tx"); | 108 | SetWindowText(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), "Abort Tx"); |
| 114 | ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), SW_SHOW); | 109 | ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), SW_SHOW); |
| 115 | 110 | ||
| 116 | - if (!GetTransferSizes(hFile, &dwPacketSize, &dwMaxPackets, &dwFileSize)) { | ||
| 117 | - TransferRepeatDestroy(); | ||
| 118 | - return; | ||
| 119 | - } | ||
| 120 | 111 | ||
| 121 | // Allocate a buffer | 112 | // Allocate a buffer |
| 122 | - lpBuf = HeapAlloc(ghWriterHeap, 0, dwFileSize); | 113 | + lpBuf = HeapAlloc(ghWriterHeap, 0, TTYInfo.dwFileSize); |
| 123 | if (lpBuf == NULL) { | 114 | if (lpBuf == NULL) { |
| 124 | ErrorReporter("HeapAlloc (data block from writer heap).\r\nFile is too large"); | 115 | ErrorReporter("HeapAlloc (data block from writer heap).\r\nFile is too large"); |
| 125 | TransferRepeatDestroy(); | 116 | TransferRepeatDestroy(); |
| @@ -127,15 +118,15 @@ void TransferRepeatCreate(LPCTSTR lpszFileName, DWORD dwFrequency) | @@ -127,15 +118,15 @@ void TransferRepeatCreate(LPCTSTR lpszFileName, DWORD dwFrequency) | ||
| 127 | } | 118 | } |
| 128 | 119 | ||
| 129 | // fill the buffer | 120 | // fill the buffer |
| 130 | - if (!ReadFile(hFile, lpBuf, dwFileSize, &dwRead, NULL)) { | ||
| 131 | - ErrorReporter("Can't read from file\n"); | ||
| 132 | - TransferRepeatDestroy(); | ||
| 133 | - } | 121 | + //if (!ReadFile(TTYInfo.hFile, lpBuf, TTYInfo.dwFileSize, &TTYInfo.dwRead, NULL)) { |
| 122 | + // ErrorReporter("Can't read from file\n"); | ||
| 123 | + // TransferRepeatDestroy(); | ||
| 124 | + //} | ||
| 134 | 125 | ||
| 135 | - if (dwRead != dwFileSize) | ||
| 136 | - ErrorReporter("Didn't read entire file\n"); | 126 | + //if (dwRead != dwFileSize) |
| 127 | + // ErrorReporter("Didn't read entire file\n"); | ||
| 137 | 128 | ||
| 138 | - mmTimer = timeSetEvent((UINT) dwFrequency, 10, TransferRepeatDo, dwRead, TIME_PERIODIC); | 129 | + mmTimer = timeSetEvent((UINT) dwFrequency, 10, TransferRepeatDo, TTYInfo.dwRead, TIME_PERIODIC); |
| 139 | if (mmTimer == (MMRESULT) NULL) { | 130 | if (mmTimer == (MMRESULT) NULL) { |
| 140 | ErrorReporter("Could not create mm timer"); | 131 | ErrorReporter("Could not create mm timer"); |
| 141 | TransferRepeatDestroy(); | 132 | TransferRepeatDestroy(); |
| @@ -174,7 +165,7 @@ void TransferRepeatDestroy() | @@ -174,7 +165,7 @@ void TransferRepeatDestroy() | ||
| 174 | } | 165 | } |
| 175 | 166 | ||
| 176 | // close the file | 167 | // close the file |
| 177 | - CloseHandle(hFile); | 168 | + CloseHandle(TTYInfo.hFile); |
| 178 | 169 | ||
| 179 | // inform writer to abort all pending write requests | 170 | // inform writer to abort all pending write requests |
| 180 | if (!WriterAddFirstNodeTimeout(WRITE_ABORT, 0, 0, NULL, NULL, NULL, 500)) | 171 | if (!WriterAddFirstNodeTimeout(WRITE_ABORT, 0, 0, NULL, NULL, NULL, 500)) |
| @@ -192,11 +183,11 @@ void TransferRepeatDestroy() | @@ -192,11 +183,11 @@ void TransferRepeatDestroy() | ||
| 192 | // | 183 | // |
| 193 | hMenu = GetMenu(ghwndMain); | 184 | hMenu = GetMenu(ghwndMain); |
| 194 | MenuFlags = MF_ENABLED; | 185 | MenuFlags = MF_ENABLED; |
| 195 | - EnableMenuItem(hMenu, ID_TRANSFER_ABORTREPEATEDSENDING, MF_DISABLED | MF_GRAYED); | ||
| 196 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); | ||
| 197 | - EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 198 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | ||
| 199 | - EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | 186 | + //EnableMenuItem(hMenu, ID_TRANSFER_ABORTREPEATEDSENDING, MF_DISABLED | MF_GRAYED); |
| 187 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); | ||
| 188 | + //EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 189 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | ||
| 190 | + //EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | ||
| 200 | 191 | ||
| 201 | ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), SW_HIDE); | 192 | ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), SW_HIDE); |
| 202 | 193 | ||
| @@ -218,12 +209,12 @@ HISTORY: Date: Author: Comment: | @@ -218,12 +209,12 @@ HISTORY: Date: Author: Comment: | ||
| 218 | -----------------------------------------------------------------------------*/ | 209 | -----------------------------------------------------------------------------*/ |
| 219 | void CALLBACK TransferRepeatDo( UINT uTimerId, | 210 | void CALLBACK TransferRepeatDo( UINT uTimerId, |
| 220 | UINT uRes, | 211 | UINT uRes, |
| 221 | - DWORD dwFileSize, | 212 | + //DWORD dwFileSize, |
| 222 | DWORD dwRes1, | 213 | DWORD dwRes1, |
| 223 | DWORD dwRes2) | 214 | DWORD dwRes2) |
| 224 | { | 215 | { |
| 225 | - if (!WriterAddNewNodeTimeout(WRITE_BLOCK, dwFileSize, 0, lpBuf, 0, 0, 10)) | ||
| 226 | - PostMessage(ghwndMain, WM_COMMAND, ID_TRANSFER_ABORTSENDING, MAKELPARAM(IDC_ABORTBTN, 0) ); | 216 | + WriterAddNewNodeTimeout(WRITE_BLOCK, TTYInfo.dwFileSize, 0, lpBuf, 0, 0, 10); |
| 217 | + // PostMessage(ghwndMain, WM_COMMAND, ID_TRANSFER_ABORTSENDING, MAKELPARAM(IDC_ABORTBTN, 0) ); | ||
| 227 | 218 | ||
| 228 | return; | 219 | return; |
| 229 | } | 220 | } |
| @@ -252,20 +243,17 @@ void TransferFileTextStart(LPCTSTR lpstrFileName) | @@ -252,20 +243,17 @@ void TransferFileTextStart(LPCTSTR lpstrFileName) | ||
| 252 | // | 243 | // |
| 253 | // open the file | 244 | // open the file |
| 254 | // | 245 | // |
| 255 | - hFile = OpenTheFile(lpstrFileName); | ||
| 256 | - if (hFile == INVALID_HANDLE_VALUE) | ||
| 257 | - return; | ||
| 258 | 246 | ||
| 259 | // | 247 | // |
| 260 | // modify transfer menu | 248 | // modify transfer menu |
| 261 | // | 249 | // |
| 262 | hMenu = GetMenu(ghwndMain); | 250 | hMenu = GetMenu(ghwndMain); |
| 263 | MenuFlags = MF_DISABLED | MF_GRAYED; | 251 | MenuFlags = MF_DISABLED | MF_GRAYED; |
| 264 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); | ||
| 265 | - EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 266 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | ||
| 267 | - EnableMenuItem(hMenu, ID_TRANSFER_ABORTSENDING, MF_ENABLED); | ||
| 268 | - EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | 252 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 253 | + //EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 254 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | ||
| 255 | + //EnableMenuItem(hMenu, ID_TRANSFER_ABORTSENDING, MF_ENABLED); | ||
| 256 | + //EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | ||
| 269 | // | 257 | // |
| 270 | // enable abort button and progress bar | 258 | // enable abort button and progress bar |
| 271 | // | 259 | // |
| @@ -281,7 +269,7 @@ void TransferFileTextStart(LPCTSTR lpstrFileName) | @@ -281,7 +269,7 @@ void TransferFileTextStart(LPCTSTR lpstrFileName) | ||
| 281 | 269 | ||
| 282 | hTransferThread = CreateThread(NULL, 0, | 270 | hTransferThread = CreateThread(NULL, 0, |
| 283 | TransferThreadProc, | 271 | TransferThreadProc, |
| 284 | - (LPVOID) hFile, 0, &dwThreadId); | 272 | + (LPVOID) TTYInfo.hFile, 0, &dwThreadId); |
| 285 | 273 | ||
| 286 | if (hTransferThread == NULL) { | 274 | if (hTransferThread == NULL) { |
| 287 | ErrorReporter("CreateThread (Transfer Thread)"); | 275 | ErrorReporter("CreateThread (Transfer Thread)"); |
| @@ -332,22 +320,22 @@ void TransferFileTextEnd() | @@ -332,22 +320,22 @@ void TransferFileTextEnd() | ||
| 332 | // | 320 | // |
| 333 | hMenu = GetMenu(ghwndMain); | 321 | hMenu = GetMenu(ghwndMain); |
| 334 | MenuFlags = MF_ENABLED; | 322 | MenuFlags = MF_ENABLED; |
| 335 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); | ||
| 336 | - EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 337 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | ||
| 338 | - EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | ||
| 339 | - EnableMenuItem(hMenu, ID_TRANSFER_ABORTSENDING, MF_DISABLED | MF_GRAYED); | 323 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 324 | + //EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 325 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | ||
| 326 | + //EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | ||
| 327 | + //EnableMenuItem(hMenu, ID_TRANSFER_ABORTSENDING, MF_DISABLED | MF_GRAYED); | ||
| 340 | 328 | ||
| 341 | // | 329 | // |
| 342 | // disable abort button and progress bar | 330 | // disable abort button and progress bar |
| 343 | // | 331 | // |
| 344 | - ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), SW_HIDE); | ||
| 345 | - ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), SW_HIDE); | ||
| 346 | - EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_SENDBTN), TRUE); | 332 | + //ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), SW_HIDE); |
| 333 | + //ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), SW_HIDE); | ||
| 334 | +// EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_SENDBTN), TRUE); | ||
| 347 | // | 335 | // |
| 348 | // close the file | 336 | // close the file |
| 349 | // | 337 | // |
| 350 | - CloseHandle(hFile); | 338 | + CloseHandle(TTYInfo.hFile); |
| 351 | } | 339 | } |
| 352 | 340 | ||
| 353 | 341 | ||
| @@ -384,16 +372,17 @@ void ReceiveFileText(LPCTSTR lpstrFileName) | @@ -384,16 +372,17 @@ void ReceiveFileText(LPCTSTR lpstrFileName) | ||
| 384 | */ | 372 | */ |
| 385 | hMenu = GetMenu(ghwndMain); | 373 | hMenu = GetMenu(ghwndMain); |
| 386 | MenuFlags = MF_DISABLED | MF_GRAYED; | 374 | MenuFlags = MF_DISABLED | MF_GRAYED; |
| 387 | - EnableMenuItem(hMenu, ID_FILE_CONNECT, MenuFlags); | ||
| 388 | - EnableMenuItem(hMenu, ID_FILE_DISCONNECT, MenuFlags); | 375 | + //EnableMenuItem(hMenu, ID_FILE_CONNECT, MenuFlags); |
| 376 | + EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_BTN_CONNECT_UART), FALSE); | ||
| 377 | + //EnableMenuItem(hMenu, ID_FILE_DISCONNECT, MenuFlags); | ||
| 389 | 378 | ||
| 390 | // | 379 | // |
| 391 | // disable transfer menu | 380 | // disable transfer menu |
| 392 | // | 381 | // |
| 393 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); | ||
| 394 | - EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 395 | - EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | ||
| 396 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | 382 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 383 | + //EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 384 | + //EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | ||
| 385 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | ||
| 397 | 386 | ||
| 398 | // | 387 | // |
| 399 | // enable abort button and progress bar | 388 | // enable abort button and progress bar |
| @@ -418,16 +407,16 @@ void ReceiveFileText(LPCTSTR lpstrFileName) | @@ -418,16 +407,16 @@ void ReceiveFileText(LPCTSTR lpstrFileName) | ||
| 418 | // | 407 | // |
| 419 | // enable transfer menu | 408 | // enable transfer menu |
| 420 | // | 409 | // |
| 421 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); | ||
| 422 | - EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 423 | - EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | ||
| 424 | - EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | 410 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 411 | + //EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); | ||
| 412 | + //EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); | ||
| 413 | + //EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); | ||
| 425 | 414 | ||
| 426 | // | 415 | // |
| 427 | // hide abort button and progress bar | 416 | // hide abort button and progress bar |
| 428 | // | 417 | // |
| 429 | - ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), SW_HIDE); | ||
| 430 | - ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), SW_HIDE); | 418 | + //ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), SW_HIDE); |
| 419 | + //ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), SW_HIDE); | ||
| 431 | 420 | ||
| 432 | gfAbortTransfer = FALSE; | 421 | gfAbortTransfer = FALSE; |
| 433 | 422 | ||
| @@ -452,12 +441,8 @@ HISTORY: Date: Author: Comment: | @@ -452,12 +441,8 @@ HISTORY: Date: Author: Comment: | ||
| 452 | HANDLE OpenTheFile(LPCTSTR lpFName) | 441 | HANDLE OpenTheFile(LPCTSTR lpFName) |
| 453 | { | 442 | { |
| 454 | HANDLE hTemp; | 443 | HANDLE hTemp; |
| 455 | - | ||
| 456 | hTemp = CreateFile(lpFName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0,NULL); | 444 | hTemp = CreateFile(lpFName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0,NULL); |
| 457 | - | ||
| 458 | - if (hTemp == INVALID_HANDLE_VALUE) | ||
| 459 | - ErrorReporter("CreateFile"); | ||
| 460 | - | 445 | + if (hTemp == INVALID_HANDLE_VALUE) ErrorReporter("CreateFile"); |
| 461 | return hTemp; | 446 | return hTemp; |
| 462 | } | 447 | } |
| 463 | 448 | ||
| @@ -713,27 +698,24 @@ typedef struct { | @@ -713,27 +698,24 @@ typedef struct { | ||
| 713 | 698 | ||
| 714 | const char dft_bdaddr[6] = {0x00,0x00,0x00,0x3F,0x9f,0x94}; | 699 | const char dft_bdaddr[6] = {0x00,0x00,0x00,0x3F,0x9f,0x94}; |
| 715 | 700 | ||
| 716 | -int fileCheck(char *fData,char *dataLen) | 701 | +int fileCheck(,void) |
| 717 | { | 702 | { |
| 718 | int i; | 703 | int i; |
| 719 | /*BOOL flag = FALSE;*/ | 704 | /*BOOL flag = FALSE;*/ |
| 720 | int ret = FILE_CHCK_SUCCESSFUL; | 705 | int ret = FILE_CHCK_SUCCESSFUL; |
| 721 | - U32 *p1 = (U32 *)fData; | 706 | + U32 *p1 = (U32 *)TTYInfo.buff_Binfile; |
| 722 | BOOT_HEADER *p_header; | 707 | BOOT_HEADER *p_header; |
| 723 | - char *p = fData+MAC_ADDR_OFFSET+BAUDRATE_DET_DATA_LEN+HEADER_LEN; | 708 | + char *p = TTYInfo.buff_Binfile+MAC_ADDR_OFFSET+BAUDRATE_DET_DATA_LEN+HEADER_LEN; |
| 724 | unsigned char baaddr[6]; | 709 | unsigned char baaddr[6]; |
| 725 | LARGE_INTEGER ticks; | 710 | LARGE_INTEGER ticks; |
| 726 | 711 | ||
| 727 | - if (dataLen < MAC_ADDR_OFFSET + BAUDRATE_DET_DATA_LEN + HEADER_LEN + 0x2000) | 712 | + if (TTYInfo.dwFileSize < MAC_ADDR_OFFSET + BAUDRATE_DET_DATA_LEN + HEADER_LEN + 0x2000) |
| 728 | { | 713 | { |
| 729 | /*flag = TRUE;*/ | 714 | /*flag = TRUE;*/ |
| 730 | 715 | ||
| 731 | return FILE_CHCK_SUCCESSFUL; | 716 | return FILE_CHCK_SUCCESSFUL; |
| 732 | } | 717 | } |
| 733 | - | ||
| 734 | - | ||
| 735 | - | ||
| 736 | - p1 = (U32 *)fData; | 718 | + p1 = (U32 *)TTYInfo.buff_Binfile; |
| 737 | 719 | ||
| 738 | memcpy(baaddr,dft_bdaddr,sizeof(baaddr)); | 720 | memcpy(baaddr,dft_bdaddr,sizeof(baaddr)); |
| 739 | 721 | ||
| @@ -747,7 +729,7 @@ int fileCheck(char *fData,char *dataLen) | @@ -747,7 +729,7 @@ int fileCheck(char *fData,char *dataLen) | ||
| 747 | } | 729 | } |
| 748 | } | 730 | } |
| 749 | 731 | ||
| 750 | - p_header = (BOOT_HEADER *)(fData+BAUDRATE_DET_DATA_LEN); | 732 | + p_header = (BOOT_HEADER *)(TTYInfo.buff_Binfile+BAUDRATE_DET_DATA_LEN); |
| 751 | /***********header check*********************/ | 733 | /***********header check*********************/ |
| 752 | if (ret == FILE_CHCK_SUCCESSFUL) | 734 | if (ret == FILE_CHCK_SUCCESSFUL) |
| 753 | { | 735 | { |
| @@ -755,7 +737,7 @@ int fileCheck(char *fData,char *dataLen) | @@ -755,7 +737,7 @@ int fileCheck(char *fData,char *dataLen) | ||
| 755 | { | 737 | { |
| 756 | ret = WRONG_FILE_FORMAT; | 738 | ret = WRONG_FILE_FORMAT; |
| 757 | } | 739 | } |
| 758 | - else if (p_header->rx_total_bytes != (dataLen - BAUDRATE_DET_DATA_LEN - sizeof(BOOT_HEADER))) | 740 | + else if (p_header->rx_total_bytes != (TTYInfo.dwFileSize - BAUDRATE_DET_DATA_LEN - sizeof(BOOT_HEADER))) |
| 759 | { | 741 | { |
| 760 | ret = WRONG_FILE_FORMAT; | 742 | ret = WRONG_FILE_FORMAT; |
| 761 | } | 743 | } |
| @@ -765,7 +747,7 @@ int fileCheck(char *fData,char *dataLen) | @@ -765,7 +747,7 @@ int fileCheck(char *fData,char *dataLen) | ||
| 765 | if (ret == FILE_CHCK_SUCCESSFUL) | 747 | if (ret == FILE_CHCK_SUCCESSFUL) |
| 766 | { | 748 | { |
| 767 | int checksum = 0; | 749 | int checksum = 0; |
| 768 | - p1 = (U32*)(fData + BAUDRATE_DET_DATA_LEN + sizeof(BOOT_HEADER)); | 750 | + p1 = (U32*)(TTYInfo.buff_Binfile + BAUDRATE_DET_DATA_LEN + sizeof(BOOT_HEADER)); |
| 769 | for(i=0;i<(p_header->rx_total_bytes-4)/4;i++) | 751 | for(i=0;i<(p_header->rx_total_bytes-4)/4;i++) |
| 770 | { | 752 | { |
| 771 | checksum += *p1++; | 753 | checksum += *p1++; |
| @@ -786,8 +768,10 @@ int fileCheck(char *fData,char *dataLen) | @@ -786,8 +768,10 @@ int fileCheck(char *fData,char *dataLen) | ||
| 786 | baaddr[1] = (unsigned char)(ticks.LowPart>>8)&0x000000ff; | 768 | baaddr[1] = (unsigned char)(ticks.LowPart>>8)&0x000000ff; |
| 787 | baaddr[2] = (unsigned char)(ticks.LowPart>>16)&0x000000ff; | 769 | baaddr[2] = (unsigned char)(ticks.LowPart>>16)&0x000000ff; |
| 788 | 770 | ||
| 789 | - wsprintf(szMessage, "bt bdaddr:0x%02x%02x%02x%02x%02x%02x\r\n",baaddr[5],baaddr[4],baaddr[3],baaddr[2],baaddr[1],baaddr[0]); | ||
| 790 | - UpdateStatus(szMessage); | 771 | + memset(szMessage,0,70); |
| 772 | + wsprintf(szMessage, "0x%02x%02x%02x%02x%02x%02x\r\n",baaddr[5],baaddr[4],baaddr[3],baaddr[2],baaddr[1],baaddr[0]); | ||
| 773 | + OutputABuffer(szMessage); | ||
| 774 | + //UpdateStatus(szMessage); | ||
| 791 | } | 775 | } |
| 792 | else | 776 | else |
| 793 | { | 777 | { |
| @@ -815,29 +799,18 @@ int fileCheck(char *fData,char *dataLen) | @@ -815,29 +799,18 @@ int fileCheck(char *fData,char *dataLen) | ||
| 815 | *p++ = 0; | 799 | *p++ = 0; |
| 816 | *p++ = 0; | 800 | *p++ = 0; |
| 817 | *p++ = 0; | 801 | *p++ = 0; |
| 818 | - | ||
| 819 | -// bt mac id | ||
| 820 | -/* *p++ = 0x11; | ||
| 821 | - *p++ = 0x12; | ||
| 822 | - *p++ = 0x13; | ||
| 823 | - *p++ = 0x14; | ||
| 824 | - *p++ = 0x15; | ||
| 825 | - *p++ = 0x16;*/ | ||
| 826 | memcpy(p,baaddr,sizeof(baaddr)); | 802 | memcpy(p,baaddr,sizeof(baaddr)); |
| 827 | p+=6; | 803 | p+=6; |
| 828 | 804 | ||
| 829 | //if (flag) | 805 | //if (flag) |
| 830 | //{ | 806 | //{ |
| 831 | - // OutputDebugString("àÓ\n"); | ||
| 832 | - p = fData + MAC_ADDR_OFFSET + BAUDRATE_DET_DATA_LEN + HEADER_LEN + 0X1000; | 807 | + p = TTYInfo.buff_Binfile + MAC_ADDR_OFFSET + BAUDRATE_DET_DATA_LEN + HEADER_LEN + 0X1000; |
| 833 | /*} | 808 | /*} |
| 834 | else | 809 | else |
| 835 | { | 810 | { |
| 836 | OutputDebugString("àÓàÓàÓ\n"); | 811 | OutputDebugString("àÓàÓàÓ\n"); |
| 837 | p = fData + MAC_ADDR_OFFSET + 0X1000 + 0xb20; | 812 | p = fData + MAC_ADDR_OFFSET + 0X1000 + 0xb20; |
| 838 | }*/ | 813 | }*/ |
| 839 | - | ||
| 840 | -// "Optek Bt\0\0" | ||
| 841 | *p++ = 'O'; | 814 | *p++ = 'O'; |
| 842 | *p++ = 'p'; | 815 | *p++ = 'p'; |
| 843 | *p++ = 't'; | 816 | *p++ = 't'; |
| @@ -846,7 +819,6 @@ int fileCheck(char *fData,char *dataLen) | @@ -846,7 +819,6 @@ int fileCheck(char *fData,char *dataLen) | ||
| 846 | *p++ = ' '; | 819 | *p++ = ' '; |
| 847 | *p++ = 'B'; | 820 | *p++ = 'B'; |
| 848 | *p++ = 't'; | 821 | *p++ = 't'; |
| 849 | - // *p++ = 0; | ||
| 850 | 822 | ||
| 851 | //u32 wr_cn; | 823 | //u32 wr_cn; |
| 852 | *p++ = 0; | 824 | *p++ = 0; |
| @@ -859,36 +831,15 @@ int fileCheck(char *fData,char *dataLen) | @@ -859,36 +831,15 @@ int fileCheck(char *fData,char *dataLen) | ||
| 859 | *p++ = 0; | 831 | *p++ = 0; |
| 860 | *p++ = 0; | 832 | *p++ = 0; |
| 861 | // bt mac id | 833 | // bt mac id |
| 862 | -/* *p++ = 0x11; | ||
| 863 | - *p++ = 0x12; | ||
| 864 | - *p++ = 0x13; | ||
| 865 | - *p++ = 0x14; | ||
| 866 | - *p++ = 0x15; | ||
| 867 | - *p++ = 0x16;*/ | ||
| 868 | memcpy(p,baaddr,sizeof(baaddr)); | 834 | memcpy(p,baaddr,sizeof(baaddr)); |
| 869 | p+=6; | 835 | p+=6; |
| 870 | - | ||
| 871 | //a-a5 | 836 | //a-a5 |
| 872 | -/* | ||
| 873 | - buf = buf+0xfc00c; | ||
| 874 | - buf[0] = a; | ||
| 875 | - buf[1] = a1; | ||
| 876 | - buf[2] = a2; | ||
| 877 | - buf[3] = a3; | ||
| 878 | - buf[4] = a4; | ||
| 879 | - buf[5] = a5; | ||
| 880 | - buf = buf-0xfc00c; | ||
| 881 | - */ | ||
| 882 | - | ||
| 883 | if (ret == FILE_CHCK_SUCCESSFUL) | 837 | if (ret == FILE_CHCK_SUCCESSFUL) |
| 884 | { | 838 | { |
| 885 | int checksum = 0; | 839 | int checksum = 0; |
| 886 | - p1 = (U32*)(fData + BAUDRATE_DET_DATA_LEN + sizeof(BOOT_HEADER)); | 840 | + p1 = (U32*)(TTYInfo.buff_Binfile + BAUDRATE_DET_DATA_LEN + sizeof(BOOT_HEADER)); |
| 887 | for(i=0;i<(p_header->rx_total_bytes-4)/4;i++) | 841 | for(i=0;i<(p_header->rx_total_bytes-4)/4;i++) |
| 888 | - { | ||
| 889 | checksum += *p1++; | 842 | checksum += *p1++; |
| 890 | - } | ||
| 891 | - | ||
| 892 | *p1 = checksum; | 843 | *p1 = checksum; |
| 893 | p_header->rx_checksum = checksum; | 844 | p_header->rx_checksum = checksum; |
| 894 | } | 845 | } |
| @@ -897,29 +848,21 @@ int fileCheck(char *fData,char *dataLen) | @@ -897,29 +848,21 @@ int fileCheck(char *fData,char *dataLen) | ||
| 897 | 848 | ||
| 898 | DWORD WINAPI TransferThreadProc(LPVOID lpV) | 849 | DWORD WINAPI TransferThreadProc(LPVOID lpV) |
| 899 | { | 850 | { |
| 900 | - DWORD dwPacketSize, dwMaxPackets, dwFileSize; | ||
| 901 | DWORD dwStartTime; | 851 | DWORD dwStartTime; |
| 902 | HWND hWndProgress; | 852 | HWND hWndProgress; |
| 903 | - HANDLE hFileHandle; | 853 | + //HANDLE hFileHandle; |
| 904 | HANDLE hDataHeap; | 854 | HANDLE hDataHeap; |
| 905 | BOOL fStarted = TRUE; | 855 | BOOL fStarted = TRUE; |
| 906 | BOOL fAborting = FALSE; | 856 | BOOL fAborting = FALSE; |
| 907 | BOOL userAborting = TRUE; | 857 | BOOL userAborting = TRUE; |
| 908 | - char *lpfileBuf; | ||
| 909 | char *pRead; | 858 | char *pRead; |
| 910 | - DWORD dwRead; | ||
| 911 | int err; | 859 | int err; |
| 912 | - | ||
| 913 | - | ||
| 914 | - hFileHandle = (HANDLE) lpV; | 860 | + DWORD dwRead = TTYInfo.dwRead; |
| 861 | + //hFileHandle = (HANDLE) lpV; | ||
| 915 | hWndProgress = GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS); | 862 | hWndProgress = GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS); |
| 916 | - | ||
| 917 | - // set up transfer metrics | ||
| 918 | - if (!GetTransferSizes(hFileHandle, &dwPacketSize, &dwMaxPackets, &dwFileSize)) | ||
| 919 | - fAborting = TRUE; | ||
| 920 | - else { | ||
| 921 | - SendMessage(hWndProgress, PBM_SETRANGE, 0, MAKELPARAM(0, dwMaxPackets+1)); | ||
| 922 | -// SendMessage(hWndProgress, PBM_SETRANGE, 0, MAKELPARAM(0, 100)); | 863 | + { |
| 864 | + //SendMessage(hWndProgress, PBM_SETRANGE, 0, MAKELPARAM(0, TTYInfo.dwMaxPackets+1)); | ||
| 865 | + SendMessage(hWndProgress, PBM_SETRANGE, 0, MAKELPARAM(0, 100)); | ||
| 923 | SendMessage(hWndProgress, PBM_SETSTEP, (WPARAM) 1, 0); | 866 | SendMessage(hWndProgress, PBM_SETSTEP, (WPARAM) 1, 0); |
| 924 | SendMessage(hWndProgress, PBM_SETPOS, 0, 0); | 867 | SendMessage(hWndProgress, PBM_SETPOS, 0, 0); |
| 925 | } | 868 | } |
| @@ -928,7 +871,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | @@ -928,7 +871,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | ||
| 928 | if (!fAborting) { | 871 | if (!fAborting) { |
| 929 | SYSTEM_INFO sysInfo; | 872 | SYSTEM_INFO sysInfo; |
| 930 | GetSystemInfo(&sysInfo); | 873 | GetSystemInfo(&sysInfo); |
| 931 | -// hDataHeap = HeapCreate(0, sysInfo.dwPageSize * 2, sysInfo.dwPageSize * 10); | 874 | + //hDataHeap = HeapCreate(0, sysInfo.dwPageSize * 2, sysInfo.dwPageSize * 10); |
| 932 | hDataHeap = HeapCreate(0, sysInfo.dwPageSize * 20,0); | 875 | hDataHeap = HeapCreate(0, sysInfo.dwPageSize * 20,0); |
| 933 | if (hDataHeap == NULL) { | 876 | if (hDataHeap == NULL) { |
| 934 | ErrorReporter("HeapCreate (Data Heap)"); | 877 | ErrorReporter("HeapCreate (Data Heap)"); |
| @@ -937,19 +880,11 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | @@ -937,19 +880,11 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | ||
| 937 | } | 880 | } |
| 938 | 881 | ||
| 939 | /**********************check file*********************************/ | 882 | /**********************check file*********************************/ |
| 940 | - lpfileBuf = HeapAlloc(hDataHeap, 0, dwFileSize); | ||
| 941 | - pRead = lpfileBuf; | ||
| 942 | - memset(lpfileBuf,0,dwFileSize); | ||
| 943 | - ReadFile(hFileHandle, lpfileBuf, dwFileSize, &dwRead, NULL); | 883 | + //lpfileBuf = HeapAlloc(hDataHeap, 0, TTYInfo.dwFileSize); |
| 884 | + pRead = TTYInfo.buff_Binfile; | ||
| 944 | 885 | ||
| 945 | - if (dwRead != dwFileSize) | ||
| 946 | - { | ||
| 947 | - ErrorReporter("file err!\r\n"); | ||
| 948 | - userAborting =FALSE; | ||
| 949 | - fAborting = TRUE; | ||
| 950 | - } | ||
| 951 | 886 | ||
| 952 | - err = fileCheck(lpfileBuf,dwFileSize); | 887 | + err = fileCheck(TTYInfo.dwFileSize); |
| 953 | 888 | ||
| 954 | if (err == WRONG_FILE_FORMAT) | 889 | if (err == WRONG_FILE_FORMAT) |
| 955 | { | 890 | { |
| @@ -977,7 +912,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | @@ -977,7 +912,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | ||
| 977 | 912 | ||
| 978 | // inform writer thread that a file is about to be transferred | 913 | // inform writer thread that a file is about to be transferred |
| 979 | if (!fAborting) { | 914 | if (!fAborting) { |
| 980 | - if (!WriterAddNewNode(WRITE_FILESTART, dwFileSize, 0, NULL, NULL, NULL)) | 915 | + if (!WriterAddNewNode(WRITE_FILESTART, TTYInfo.dwFileSize, 0, NULL, NULL, NULL)) |
| 981 | fAborting = TRUE; | 916 | fAborting = TRUE; |
| 982 | 917 | ||
| 983 | } | 918 | } |
| @@ -992,7 +927,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | @@ -992,7 +927,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | ||
| 992 | char * lpDataBuf; | 927 | char * lpDataBuf; |
| 993 | 928 | ||
| 994 | // transfer file, loop until all blocks of file have been read | 929 | // transfer file, loop until all blocks of file have been read |
| 995 | - lpDataBuf = HeapAlloc(hDataHeap, 0, dwPacketSize); | 930 | + lpDataBuf = HeapAlloc(hDataHeap, 0, TTYInfo.dwPacketSize); |
| 996 | pWrite = HeapAlloc(ghWriterHeap, 0, sizeof(WRITEREQUEST)); | 931 | pWrite = HeapAlloc(ghWriterHeap, 0, sizeof(WRITEREQUEST)); |
| 997 | 932 | ||
| 998 | if ((lpDataBuf != NULL) && (pWrite != NULL)) { | 933 | if ((lpDataBuf != NULL) && (pWrite != NULL)) { |
| @@ -1001,13 +936,15 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | @@ -1001,13 +936,15 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | ||
| 1001 | 936 | ||
| 1002 | // read from file into new buffer | 937 | // read from file into new buffer |
| 1003 | //if (ReadFile(hFileHandle, lpDataBuf, dwPacketSize, &dwRead, NULL)) { | 938 | //if (ReadFile(hFileHandle, lpDataBuf, dwPacketSize, &dwRead, NULL)) { |
| 1004 | - if (dwRead > dwPacketSize){ | ||
| 1005 | - memcpy(lpDataBuf,pRead,dwPacketSize); | ||
| 1006 | - WriterAddExistingNode(pWrite, WRITE_FILE, dwPacketSize, 0, lpDataBuf, hDataHeap, hWndProgress); | ||
| 1007 | - dwRead -= dwPacketSize; | ||
| 1008 | - pRead += dwPacketSize; | 939 | + if (dwRead > TTYInfo.dwPacketSize) |
| 940 | + { | ||
| 941 | + memcpy(lpDataBuf,pRead,TTYInfo.dwPacketSize); | ||
| 942 | + WriterAddExistingNode(pWrite, WRITE_FILE, TTYInfo.dwPacketSize, 0, lpDataBuf, hDataHeap, hWndProgress); | ||
| 943 | + dwRead -= TTYInfo.dwPacketSize; | ||
| 944 | + pRead += TTYInfo.dwPacketSize; | ||
| 1009 | } | 945 | } |
| 1010 | - else{ | 946 | + else |
| 947 | + { | ||
| 1011 | memcpy(lpDataBuf,pRead,dwRead); | 948 | memcpy(lpDataBuf,pRead,dwRead); |
| 1012 | WriterAddExistingNode(pWrite, WRITE_FILE, dwRead, 0, lpDataBuf, hDataHeap, hWndProgress); | 949 | WriterAddExistingNode(pWrite, WRITE_FILE, dwRead, 0, lpDataBuf, hDataHeap, hWndProgress); |
| 1013 | // eof | 950 | // eof |
| @@ -1052,27 +989,16 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | @@ -1052,27 +989,16 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | ||
| 1052 | if (WaitForSingleObject(hTransferAbortEvent, 0) == WAIT_OBJECT_0) | 989 | if (WaitForSingleObject(hTransferAbortEvent, 0) == WAIT_OBJECT_0) |
| 1053 | fAborting = TRUE; | 990 | fAborting = TRUE; |
| 1054 | } | 991 | } |
| 1055 | - | ||
| 1056 | - if (lpfileBuf) { | ||
| 1057 | - BOOL fRes; | ||
| 1058 | - | ||
| 1059 | - EnterCriticalSection(&gcsDataHeap); | ||
| 1060 | - fRes = HeapFree(hDataHeap, 0, lpfileBuf); | ||
| 1061 | - LeaveCriticalSection(&gcsDataHeap); | ||
| 1062 | - if (!fRes) | ||
| 1063 | - ErrorReporter("HeapFree (Data block)"); | ||
| 1064 | - } | ||
| 1065 | - | ||
| 1066 | OutputDebugString("Xfer: Done sending packets.\n"); | 992 | OutputDebugString("Xfer: Done sending packets.\n"); |
| 1067 | 993 | ||
| 1068 | if (fAborting) { | 994 | if (fAborting) { |
| 1069 | // inform writer that transfer is aborting | 995 | // inform writer that transfer is aborting |
| 1070 | 996 | ||
| 1071 | OutputDebugString("Xfer: Sending Abort Packet to writer\n"); | 997 | OutputDebugString("Xfer: Sending Abort Packet to writer\n"); |
| 1072 | - WriterAddFirstNodeTimeout(WRITE_ABORT, dwFileSize, 0, NULL, NULL, NULL, 500); | 998 | + WriterAddFirstNodeTimeout(WRITE_ABORT, TTYInfo.dwPacketSize, 0, NULL, NULL, NULL, 500); |
| 1073 | } | 999 | } |
| 1074 | else | 1000 | else |
| 1075 | - WriterAddNewNodeTimeout(WRITE_FILEEND, dwFileSize, 0, NULL, NULL, NULL, 500); | 1001 | + WriterAddNewNodeTimeout(WRITE_FILEEND, TTYInfo.dwPacketSize, 0, NULL, NULL, NULL, 500); |
| 1076 | 1002 | ||
| 1077 | { | 1003 | { |
| 1078 | // wait til writer thread finishes with all blocks | 1004 | // wait til writer thread finishes with all blocks |
| @@ -1097,7 +1023,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | @@ -1097,7 +1023,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | ||
| 1097 | fAborting = TRUE; | 1023 | fAborting = TRUE; |
| 1098 | OutputDebugString("Transfer abort signal rec'd\n"); | 1024 | OutputDebugString("Transfer abort signal rec'd\n"); |
| 1099 | OutputDebugString("Xfer: Sending Abort Packet to writer\n"); | 1025 | OutputDebugString("Xfer: Sending Abort Packet to writer\n"); |
| 1100 | - if (!WriterAddFirstNodeTimeout(WRITE_ABORT, dwFileSize, 0, NULL, NULL, NULL, 500)) | 1026 | + if (!WriterAddFirstNodeTimeout(WRITE_ABORT, TTYInfo.dwPacketSize, 0, NULL, NULL, NULL, 500)) |
| 1101 | ErrorReporter("Can't add abort packet\n"); | 1027 | ErrorReporter("Can't add abort packet\n"); |
| 1102 | break; | 1028 | break; |
| 1103 | case WAIT_TIMEOUT: break; | 1029 | case WAIT_TIMEOUT: break; |
| @@ -1113,10 +1039,10 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | @@ -1113,10 +1039,10 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | ||
| 1113 | 1039 | ||
| 1114 | // report statistics | 1040 | // report statistics |
| 1115 | if (!fAborting) | 1041 | if (!fAborting) |
| 1116 | - ShowTransferStatistics(GetTickCount(), dwStartTime, dwFileSize); | 1042 | + ShowTransferStatistics(GetTickCount(), dwStartTime, TTYInfo.dwPacketSize); |
| 1117 | 1043 | ||
| 1118 | // break down metrics | 1044 | // break down metrics |
| 1119 | - PostMessage(hWndProgress, PBM_SETPOS, 0, 0); | 1045 | + //PostMessage(hWndProgress, PBM_SETPOS, 0, 0); |
| 1120 | 1046 | ||
| 1121 | // break down heaps | 1047 | // break down heaps |
| 1122 | if (hDataHeap != NULL) { | 1048 | if (hDataHeap != NULL) { |
| @@ -1129,7 +1055,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | @@ -1129,7 +1055,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) | ||
| 1129 | // clean up after the file transfer. | 1055 | // clean up after the file transfer. |
| 1130 | if ((!fAborting)|| (!userAborting)) | 1056 | if ((!fAborting)|| (!userAborting)) |
| 1131 | { | 1057 | { |
| 1132 | - PostMessage(ghwndMain, WM_COMMAND, ID_TRANSFER_ABORTSENDING, 0); | 1058 | + PostMessage(ghWndToolbarDlg, WM_COMMAND, ID_TRANSFER_ABORTSENDING, 0); |
| 1133 | } | 1059 | } |
| 1134 | 1060 | ||
| 1135 | // exit thread | 1061 | // exit thread |
| @@ -337,8 +337,8 @@ void WriterFile(PWRITEREQUEST pWrite) | @@ -337,8 +337,8 @@ void WriterFile(PWRITEREQUEST pWrite) | ||
| 337 | // | 337 | // |
| 338 | // update progress indicator (even if aborting) | 338 | // update progress indicator (even if aborting) |
| 339 | // | 339 | // |
| 340 | - if (!PostMessage(pWrite->hWndProgress, PBM_STEPIT, 0, 0)) | ||
| 341 | - ErrorReporter("PostMessage (file transfer status)"); | 340 | + //if (!PostMessage(pWrite->hWndProgress, PBM_STEPIT, 0, 0)) |
| 341 | + // ErrorReporter("PostMessage (file transfer status)"); | ||
| 342 | 342 | ||
| 343 | return; | 343 | return; |
| 344 | } | 344 | } |
| @@ -383,7 +383,7 @@ HISTORY: Date: Author: Comment: | @@ -383,7 +383,7 @@ HISTORY: Date: Author: Comment: | ||
| 383 | 11/20/95 AllenD Took out all test code | 383 | 11/20/95 AllenD Took out all test code |
| 384 | 384 | ||
| 385 | -----------------------------------------------------------------------------*/ | 385 | -----------------------------------------------------------------------------*/ |
| 386 | -void WriterFileStart(DWORD dwFileSize) | 386 | +void WriterFileStart() |
| 387 | { | 387 | { |
| 388 | return; | 388 | return; |
| 389 | } | 389 | } |
Please
register
or
login
to post a comment