Showing
8 changed files
with
294 additions
and
189 deletions
| ... | ... | @@ -34,8 +34,6 @@ |
| 34 | 34 | #include <commctrl.h> |
| 35 | 35 | #include "mttty.h" |
| 36 | 36 | |
| 37 | -#pragma comment(lib,"comctl32.lib") | |
| 38 | - | |
| 39 | 37 | /* |
| 40 | 38 | Prototypes for functions called only within this file |
| 41 | 39 | */ |
| ... | ... | @@ -51,13 +49,14 @@ DWORD WaitForThreads( DWORD ); |
| 51 | 49 | */ |
| 52 | 50 | COMMTIMEOUTS gTimeoutsDefault = { 0x01, 0, 0, 0, 0 }; |
| 53 | 51 | |
| 52 | +#ifdef __OPTEK_EDIT__ | |
| 54 | 53 | extern char szFileName[MAX_PATH]; |
| 55 | 54 | |
| 56 | 55 | void oem_init(void) |
| 57 | 56 | { |
| 58 | 57 | memset(szFileName,0,sizeof(szFileName)); |
| 59 | 58 | } |
| 60 | - | |
| 59 | +#endif | |
| 61 | 60 | |
| 62 | 61 | /*----------------------------------------------------------------------------- |
| 63 | 62 | |
| ... | ... | @@ -75,7 +74,9 @@ void GlobalInitialize() |
| 75 | 74 | { |
| 76 | 75 | int cyMenuHeight, cyCaptionHeight, cyFrameHeight; |
| 77 | 76 | |
| 77 | +#ifdef __OPTEK_EDIT__ | |
| 78 | 78 | oem_init(); |
| 79 | +#endif | |
| 79 | 80 | // |
| 80 | 81 | // critical sections in status reporting & node management |
| 81 | 82 | // |
| ... | ... | @@ -213,7 +214,9 @@ void InitNewFont(LOGFONT LogFont, COLORREF rgbColor) |
| 213 | 214 | YOFFSET( TTYInfo ) = YCHAR(TTYInfo) * ROW(TTYInfo); |
| 214 | 215 | } |
| 215 | 216 | |
| 217 | +#ifdef __OPTEK_EDIT__ | |
| 216 | 218 | extern DWORD BaudTable[]; |
| 219 | +#endif | |
| 217 | 220 | /*----------------------------------------------------------------------------- |
| 218 | 221 | |
| 219 | 222 | FUNCTION: InitTTYInfo |
| ... | ... | @@ -238,7 +241,11 @@ BOOL InitTTYInfo() |
| 238 | 241 | LOCALECHO( TTYInfo ) = FALSE ; |
| 239 | 242 | CURSORSTATE( TTYInfo ) = CS_HIDE ; |
| 240 | 243 | PORT( TTYInfo ) = 1 ; |
| 244 | +#ifdef __OPTEK_EDIT__ | |
| 241 | 245 | BAUDRATE( TTYInfo ) = BaudTable[2] ; |
| 246 | +#else | |
| 247 | + BAUDRATE( TTYInfo ) = CBR_9600 ; | |
| 248 | +#endif | |
| 242 | 249 | BYTESIZE( TTYInfo ) = 8 ; |
| 243 | 250 | PARITY( TTYInfo ) = NOPARITY ; |
| 244 | 251 | STOPBITS( TTYInfo ) = ONESTOPBIT ; |
| ... | ... | @@ -289,7 +296,11 @@ BOOL InitTTYInfo() |
| 289 | 296 | // |
| 290 | 297 | // setup default font information |
| 291 | 298 | // |
| 299 | +#ifdef __OPTEK_EDIT__ | |
| 292 | 300 | LFTTYFONT( TTYInfo ).lfHeight = 20 ; |
| 301 | +#else | |
| 302 | + LFTTYFONT( TTYInfo ).lfHeight = 12 ; | |
| 303 | +#endif | |
| 293 | 304 | LFTTYFONT( TTYInfo ).lfWidth = 0 ; |
| 294 | 305 | LFTTYFONT( TTYInfo ).lfEscapement = 0 ; |
| 295 | 306 | LFTTYFONT( TTYInfo ).lfOrientation = 0 ; |
| ... | ... | @@ -297,13 +308,16 @@ BOOL InitTTYInfo() |
| 297 | 308 | LFTTYFONT( TTYInfo ).lfItalic = 0 ; |
| 298 | 309 | LFTTYFONT( TTYInfo ).lfUnderline = 0 ; |
| 299 | 310 | LFTTYFONT( TTYInfo ).lfStrikeOut = 0 ; |
| 311 | +#ifdef __OPTEK_EDIT__ | |
| 300 | 312 | LFTTYFONT( TTYInfo ).lfCharSet = ANSI_CHARSET;//OEM_CHARSET ; |
| 313 | +#else | |
| 314 | + LFTTYFONT( TTYInfo ).lfCharSet = OEM_CHARSET ; | |
| 315 | +#endif | |
| 301 | 316 | LFTTYFONT( TTYInfo ).lfOutPrecision = OUT_DEFAULT_PRECIS ; |
| 302 | 317 | LFTTYFONT( TTYInfo ).lfClipPrecision = CLIP_DEFAULT_PRECIS ; |
| 303 | 318 | LFTTYFONT( TTYInfo ).lfQuality = DEFAULT_QUALITY ; |
| 304 | 319 | LFTTYFONT( TTYInfo ).lfPitchAndFamily = FIXED_PITCH | FF_MODERN ; |
| 305 | 320 | strcpy( LFTTYFONT( TTYInfo ).lfFaceName, "FixedSys" ) ; |
| 306 | -// strcpy( LFTTYFONT( TTYInfo ).lfFaceName, "Courier New" ) ; | |
| 307 | 321 | |
| 308 | 322 | InitNewFont( LFTTYFONT(TTYInfo), RGB(0,0,0)); |
| 309 | 323 | |
| ... | ... | @@ -579,11 +593,14 @@ HISTORY: Date: Author: Comment: |
| 579 | 593 | -----------------------------------------------------------------------------*/ |
| 580 | 594 | BOOL DisconnectOK() |
| 581 | 595 | { |
| 596 | +#ifdef __OPTEK_EDIT__ | |
| 582 | 597 | char gszPort_Temp[20] = { 0 }; |
| 598 | +#endif | |
| 583 | 599 | if (!CONNECTED(TTYInfo)) |
| 584 | 600 | return TRUE; |
| 585 | 601 | |
| 586 | 602 | |
| 603 | +#ifdef __OPTEK_EDIT__ | |
| 587 | 604 | GetDlgItemText(ghWndToolbarDlg, IDC_PORTCOMBO, gszPort, sizeof(gszPort)); |
| 588 | 605 | |
| 589 | 606 | if (gszPort[3] - '0' > 0 && gszPort[4] - '0' > 0) |
| ... | ... | @@ -592,6 +609,7 @@ BOOL DisconnectOK() |
| 592 | 609 | memset(gszPort, 20, sizeof(char)); |
| 593 | 610 | strcpy(gszPort, gszPort_Temp); |
| 594 | 611 | } |
| 612 | +#endif | |
| 595 | 613 | |
| 596 | 614 | return ((MessageBox(ghwndMain, "OK to Disconnect?", gszPort, MB_YESNO)) == IDYES); |
| 597 | 615 | } | ... | ... |
| ... | ... | @@ -25,7 +25,7 @@ STD_LIBS = libcmt.lib kernel32.lib \ |
| 25 | 25 | user32.lib gdi32.lib \ |
| 26 | 26 | comdlg32.lib |
| 27 | 27 | EXTRA_LIBS = winmm.lib comctl32.lib |
| 28 | -GLOBAL_DEP = mttty.h ttyinfo.h | |
| 28 | +GLOBAL_DEP = mttty.h | |
| 29 | 29 | RC_DEP = resource.h mttty.ico \ |
| 30 | 30 | mttty2.ico mttty3.ico \ |
| 31 | 31 | mttty4.ico | ... | ... |
| ... | ... | @@ -46,8 +46,9 @@ BOOL ScrollTTYHorz( HWND, WORD, WORD ); |
| 46 | 46 | BOOL VersionCheck(); |
| 47 | 47 | BOOL PaintTTY( HWND ); |
| 48 | 48 | |
| 49 | +#ifdef __OPTEK_EDIT__ | |
| 49 | 50 | char szFileName[MAX_PATH]; |
| 50 | - | |
| 51 | +#endif | |
| 51 | 52 | /*----------------------------------------------------------------------------- |
| 52 | 53 | |
| 53 | 54 | FUNCTION: WinMain(HINSTANCE, HINSTANCE, LPSTR, int) |
| ... | ... | @@ -150,7 +151,11 @@ BOOL InitializeApp(HINSTANCE hInst, int nShowCmd) |
| 150 | 151 | // |
| 151 | 152 | wc.lpfnWndProc = (WNDPROC) MTTTYWndProc; |
| 152 | 153 | wc.hInstance = hInst; |
| 154 | +#ifdef __OPTEK_EDIT__ | |
| 153 | 155 | wc.hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_TITLE)); |
| 156 | +#else | |
| 157 | + wc.hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_APPICON)); | |
| 158 | +#endif | |
| 154 | 159 | wc.hCursor = LoadCursor(NULL, IDC_ARROW); |
| 155 | 160 | wc.lpszMenuName = MAKEINTRESOURCE(IDR_MTTTYMENU); |
| 156 | 161 | wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1) ; |
| ... | ... | @@ -180,11 +185,19 @@ BOOL InitializeApp(HINSTANCE hInst, int nShowCmd) |
| 180 | 185 | // |
| 181 | 186 | // create main window |
| 182 | 187 | // |
| 188 | +#ifdef __OPTEK_EDIT__ | |
| 183 | 189 | ghwndMain = CreateWindow("MTTTYClass", "OPTEK", |
| 184 | 190 | WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN, |
| 185 | 191 | STARTXWINDOW, STARTYWINDOW, |
| 186 | 192 | MAXXWINDOW, MAXYWINDOW, |
| 187 | 193 | NULL, NULL, hInst, NULL); |
| 194 | +#else | |
| 195 | + ghwndMain = CreateWindow("MTTTYClass", "Multi-threaded TTY", | |
| 196 | + WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN, | |
| 197 | + STARTXWINDOW, STARTYWINDOW, | |
| 198 | + MAXXWINDOW, MAXYWINDOW, | |
| 199 | + NULL, NULL, hInst, NULL); | |
| 200 | +#endif | |
| 188 | 201 | |
| 189 | 202 | if (ghwndMain == NULL) { |
| 190 | 203 | GlobalCleanup(); |
| ... | ... | @@ -314,20 +327,24 @@ int WINAPI MTTTYWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) |
| 314 | 327 | break; |
| 315 | 328 | |
| 316 | 329 | case WM_CLOSE: |
| 317 | - /* if (DisconnectOK()) { | |
| 318 | - if (CONNECTED(TTYInfo)) { | |
| 319 | - if (TRANSFERRING(TTYInfo)) | |
| 320 | - TransferFileTextEnd(); | |
| 321 | - BreakDownCommPort(); | |
| 322 | - } | |
| 323 | - DestroyWindow(hwnd); | |
| 324 | - }*/ | |
| 330 | +#ifdef __OPTEK_EDIT__ | |
| 331 | + | |
| 325 | 332 | if (CONNECTED(TTYInfo)) { |
| 326 | 333 | if (TRANSFERRING(TTYInfo)) |
| 327 | 334 | TransferFileTextEnd(); |
| 328 | 335 | BreakDownCommPort(); |
| 329 | 336 | } |
| 330 | 337 | DestroyWindow(hwnd); |
| 338 | +#else | |
| 339 | + if (DisconnectOK()) { | |
| 340 | + if (CONNECTED(TTYInfo)) { | |
| 341 | + if (TRANSFERRING(TTYInfo)) | |
| 342 | + TransferFileTextEnd(); | |
| 343 | + BreakDownCommPort(); | |
| 344 | + } | |
| 345 | + DestroyWindow(hwnd); | |
| 346 | + } | |
| 347 | +#endif | |
| 331 | 348 | break; |
| 332 | 349 | |
| 333 | 350 | default: |
| ... | ... | @@ -363,7 +380,11 @@ void CmdDispatch(int iMenuChoice, HWND hwnd, LPARAM lParam) |
| 363 | 380 | |
| 364 | 381 | case ID_TRANSFER_SENDFILETEXT: |
| 365 | 382 | { |
| 383 | +#ifdef __OPTEK_EDIT__ | |
| 366 | 384 | char * szFilter = "bin Files\0*.bin\0"; |
| 385 | +#else | |
| 386 | + char * szFilter = "Text Files\0*.TXT\0"; | |
| 387 | +#endif | |
| 367 | 388 | OPENFILENAME ofn = {0}; |
| 368 | 389 | |
| 369 | 390 | ofn.lStructSize = sizeof(OPENFILENAME); |
| ... | ... | @@ -371,15 +392,22 @@ void CmdDispatch(int iMenuChoice, HWND hwnd, LPARAM lParam) |
| 371 | 392 | ofn.lpstrFilter = szFilter; |
| 372 | 393 | ofn.lpstrFile = szFileName; |
| 373 | 394 | ofn.nMaxFile = MAX_PATH; |
| 395 | +#ifdef __OPTEK_EDIT__ | |
| 374 | 396 | ofn.lpstrTitle = "Select file"; |
| 397 | +#else | |
| 398 | + ofn.lpstrTitle = "Send File"; | |
| 399 | +#endif | |
| 375 | 400 | ofn.Flags = OFN_FILEMUSTEXIST; |
| 376 | 401 | |
| 377 | 402 | if (!GetOpenFileName(&ofn)) |
| 378 | 403 | break; |
| 379 | 404 | |
| 405 | +#ifdef __OPTEK_EDIT__ | |
| 380 | 406 | UpdateStatus(szFileName); |
| 381 | - //if (TRUE) | |
| 382 | - // TransferFileTextStart(szFileName); | |
| 407 | +#else | |
| 408 | + if (TRUE) | |
| 409 | + TransferFileTextStart(szFileName); | |
| 410 | +#endif | |
| 383 | 411 | } |
| 384 | 412 | break; |
| 385 | 413 | |
| ... | ... | @@ -455,7 +483,9 @@ void CmdDispatch(int iMenuChoice, HWND hwnd, LPARAM lParam) |
| 455 | 483 | |
| 456 | 484 | // The following correspond to menu choices and buttons in the settings dlog |
| 457 | 485 | case IDC_FONTBTN: |
| 486 | +#ifdef __OPTEK_EDIT__ | |
| 458 | 487 | case IDC_SENDBTN: |
| 488 | +#endif | |
| 459 | 489 | case IDC_COMMEVENTSBTN: |
| 460 | 490 | case IDC_FLOWCONTROLBTN: |
| 461 | 491 | case IDC_TIMEOUTSBTN: |
| ... | ... | @@ -573,19 +603,20 @@ BOOL NEAR ScrollTTYVert( HWND hWnd, WORD wScrollCmd, WORD wScrollPos ) |
| 573 | 603 | |
| 574 | 604 | if ((YOFFSET( TTYInfo ) + nScrollAmt) < 0) |
| 575 | 605 | nScrollAmt = -YOFFSET( TTYInfo ) ; |
| 576 | - | |
| 577 | - | |
| 578 | - | |
| 606 | +#ifdef __OPTEK_EDIT__ | |
| 579 | 607 | if (nScrollAmt != 0) |
| 580 | 608 | { |
| 581 | 609 | YOFFSET( TTYInfo ) = YOFFSET( TTYInfo ) + nScrollAmt ; |
| 582 | - | |
| 583 | 610 | SetScrollPos( hWnd, SB_VERT, YOFFSET( TTYInfo ), TRUE ) ; |
| 584 | - | |
| 585 | 611 | ScrollWindowEx( hWnd, 0, -nScrollAmt, NULL, NULL, NULL, NULL, SW_INVALIDATE | SW_ERASE) ; |
| 586 | 612 | } |
| 613 | +#else | |
| 614 | + ScrollWindowEx( hWnd, 0, -nScrollAmt, NULL, NULL, NULL, NULL, SW_INVALIDATE | SW_ERASE) ; | |
| 587 | 615 | |
| 616 | + YOFFSET( TTYInfo ) = YOFFSET( TTYInfo ) + nScrollAmt ; | |
| 588 | 617 | |
| 618 | + SetScrollPos( hWnd, SB_VERT, YOFFSET( TTYInfo ), TRUE ) ; | |
| 619 | +#endif | |
| 589 | 620 | return ( TRUE ) ; |
| 590 | 621 | |
| 591 | 622 | } // end of ScrollTTYVert() | ... | ... |
| ... | ... | @@ -19,7 +19,142 @@ |
| 19 | 19 | // |
| 20 | 20 | |
| 21 | 21 | #include "resource.h" |
| 22 | -#include "ttyinfo.h" | |
| 22 | +//#include "ttyinfo.h" | |
| 23 | +#define __OPTEK_EDIT__ | |
| 24 | + | |
| 25 | +#ifdef __OPTEK_EDIT__ | |
| 26 | +#pragma comment(lib,"comctl32.lib") | |
| 27 | +#pragma comment(lib,"winmm.lib") | |
| 28 | +#endif | |
| 29 | + | |
| 30 | + | |
| 31 | +// | |
| 32 | +// constant definitions | |
| 33 | +// | |
| 34 | + | |
| 35 | +// | |
| 36 | +// hard coded maximum number of ports | |
| 37 | +// | |
| 38 | +#ifdef __OPTEK_EDIT__ | |
| 39 | +#define MAXPORTS 32 | |
| 40 | +#else | |
| 41 | +#define MAXPORTS 4 | |
| 42 | +#endif | |
| 43 | + | |
| 44 | +// | |
| 45 | +// terminal size | |
| 46 | +// | |
| 47 | +#define MAXROWS 50 | |
| 48 | +#define MAXCOLS 80 | |
| 49 | + | |
| 50 | +// | |
| 51 | +// cursor states | |
| 52 | +// | |
| 53 | +#define CS_HIDE 0x00 | |
| 54 | +#define CS_SHOW 0x01 | |
| 55 | + | |
| 56 | +// | |
| 57 | +// ascii definitions | |
| 58 | +// | |
| 59 | +#define ASCII_BEL 0x07 | |
| 60 | +#define ASCII_BS 0x08 | |
| 61 | +#define ASCII_LF 0x0A | |
| 62 | +#define ASCII_CR 0x0D | |
| 63 | +#define ASCII_XON 0x11 | |
| 64 | +#define ASCII_XOFF 0x13 | |
| 65 | + | |
| 66 | +// | |
| 67 | +// data structures | |
| 68 | +// | |
| 69 | +struct TTYInfoStruct | |
| 70 | +{ | |
| 71 | + HANDLE hCommPort, hReaderStatus, hWriter ; | |
| 72 | + DWORD dwEventFlags; | |
| 73 | + CHAR Screen[MAXCOLS * MAXROWS]; | |
| 74 | + CHAR chFlag, chXON, chXOFF; | |
| 75 | + WORD wXONLimit, wXOFFLimit; | |
| 76 | + DWORD fRtsControl; | |
| 77 | + DWORD fDtrControl; | |
| 78 | + BOOL fConnected, fTransferring, fRepeating, | |
| 79 | + fLocalEcho, fNewLine, | |
| 80 | + fDisplayErrors, fAutowrap, | |
| 81 | + fCTSOutFlow, fDSROutFlow, fDSRInFlow, | |
| 82 | + fXonXoffOutFlow, fXonXoffInFlow, | |
| 83 | + fTXafterXoffSent, | |
| 84 | + fNoReading, fNoWriting, fNoEvents, fNoStatus, | |
| 85 | + fDisplayTimeouts; | |
| 86 | + BYTE bPort, bByteSize, bParity, bStopBits ; | |
| 87 | + DWORD dwBaudRate ; | |
| 88 | + WORD wCursorState ; | |
| 89 | + HFONT hTTYFont ; | |
| 90 | + LOGFONT lfTTYFont ; | |
| 91 | + DWORD rgbFGColor ; | |
| 92 | + COMMTIMEOUTS timeoutsorig; | |
| 93 | + COMMTIMEOUTS timeoutsnew; | |
| 94 | + int xSize, ySize, xScroll, yScroll, xOffset, yOffset, | |
| 95 | + nColumn, nRow, xChar, yChar , nCharPos; | |
| 96 | + | |
| 97 | +} TTYInfo; | |
| 98 | + | |
| 99 | +// | |
| 100 | +// macros ( for easier readability ) | |
| 101 | +// | |
| 102 | +#define COMDEV( x ) (x.hCommPort) | |
| 103 | +#define CURSORSTATE( x ) (x.wCursorState) | |
| 104 | +#define PORT( x ) (x.bPort) | |
| 105 | +#define SCREEN( x ) (x.Screen) | |
| 106 | +#define CONNECTED( x ) (x.fConnected) | |
| 107 | +#define TRANSFERRING( x ) (x.fTransferring) | |
| 108 | +#define REPEATING( x ) (x.fRepeating) | |
| 109 | +#define LOCALECHO( x ) (x.fLocalEcho) | |
| 110 | +#define NEWLINE( x ) (x.fNewLine) | |
| 111 | +#define AUTOWRAP( x ) (x.fAutowrap) | |
| 112 | +#define BYTESIZE( x ) (x.bByteSize) | |
| 113 | +#define PARITY( x ) (x.bParity) | |
| 114 | +#define STOPBITS( x ) (x.bStopBits) | |
| 115 | +#define BAUDRATE( x ) (x.dwBaudRate) | |
| 116 | +#define HTTYFONT( x ) (x.hTTYFont) | |
| 117 | +#define LFTTYFONT( x ) (x.lfTTYFont) | |
| 118 | +#define FGCOLOR( x ) (x.rgbFGColor) | |
| 119 | +#define XSIZE( x ) (x.xSize) | |
| 120 | +#define YSIZE( x ) (x.ySize) | |
| 121 | +#define XSCROLL( x ) (x.xScroll) | |
| 122 | +#define YSCROLL( x ) (x.yScroll) | |
| 123 | +#define XOFFSET( x ) (x.xOffset) | |
| 124 | +#define YOFFSET( x ) (x.yOffset) | |
| 125 | +#define COLUMN( x ) (x.nColumn) | |
| 126 | +#define ROW( x ) (x.nRow) | |
| 127 | +#define XCHAR( x ) (x.xChar) | |
| 128 | +#define YCHAR( x ) (x.yChar) | |
| 129 | +#define DISPLAYERRORS( x ) (x.fDisplayErrors) | |
| 130 | +#define TIMEOUTSORIG( x ) (x.timeoutsorig) | |
| 131 | +#define TIMEOUTSNEW( x ) (x.timeoutsnew) | |
| 132 | +#define WRITERTHREAD( x ) (x.hWriter) | |
| 133 | +#define READSTATTHREAD( x ) (x.hReaderStatus) | |
| 134 | +#define EVENTFLAGS( x ) (x.dwEventFlags) | |
| 135 | +#define FLAGCHAR( x ) (x.chFlag) | |
| 136 | +#define SCREENCHAR( x, col, row ) (x.Screen[row * MAXCOLS + col]) | |
| 137 | + | |
| 138 | +#define DTRCONTROL( x ) (x.fDtrControl) | |
| 139 | +#define RTSCONTROL( x ) (x.fRtsControl) | |
| 140 | +#define XONCHAR( x ) (x.chXON) | |
| 141 | +#define XOFFCHAR( x ) (x.chXOFF) | |
| 142 | +#define XONLIMIT( x ) (x.wXONLimit) | |
| 143 | +#define XOFFLIMIT( x ) (x.wXOFFLimit) | |
| 144 | +#define CTSOUTFLOW( x ) (x.fCTSOutFlow) | |
| 145 | +#define DSROUTFLOW( x ) (x.fDSROutFlow) | |
| 146 | +#define DSRINFLOW( x ) (x.fDSRInFlow) | |
| 147 | +#define XONXOFFOUTFLOW( x ) (x.fXonXoffOutFlow) | |
| 148 | +#define XONXOFFINFLOW( x ) (x.fXonXoffInFlow) | |
| 149 | +#define TXAFTERXOFFSENT(x) (x.fTXafterXoffSent) | |
| 150 | + | |
| 151 | +#define NOREADING( x ) (x.fNoReading) | |
| 152 | +#define NOWRITING( x ) (x.fNoWriting) | |
| 153 | +#define NOEVENTS( x ) (x.fNoEvents) | |
| 154 | +#define NOSTATUS( x ) (x.fNoStatus) | |
| 155 | +#define SHOWTIMEOUTS( x ) (x.fDisplayTimeouts) | |
| 156 | + | |
| 157 | + | |
| 23 | 158 | |
| 24 | 159 | // |
| 25 | 160 | // GLOBAL DEFINES |
| ... | ... | @@ -127,7 +262,11 @@ typedef struct STATUS_MESSAGE |
| 127 | 262 | // |
| 128 | 263 | // Port name |
| 129 | 264 | // |
| 265 | +#ifdef __OPTEK_EDIT__ | |
| 130 | 266 | char gszPort[20]; |
| 267 | +#else | |
| 268 | +char gszPort[10]; | |
| 269 | +#endif | |
| 131 | 270 | |
| 132 | 271 | // |
| 133 | 272 | // Writer heap variables | ... | ... |
| ... | ... | @@ -77,7 +77,7 @@ BOOL CALLBACK GetADWORDProc( HWND, UINT, WPARAM, LPARAM ); |
| 77 | 77 | |
| 78 | 78 | DCB dcbTemp; |
| 79 | 79 | |
| 80 | -#if 1 | |
| 80 | +#ifdef __OPTEK_EDIT__ | |
| 81 | 81 | char * szBaud[] = { |
| 82 | 82 | "115200*1", "115200*2", "115200*4", "115200*8" |
| 83 | 83 | }; |
| ... | ... | @@ -90,14 +90,14 @@ DWORD BaudTable[] = { |
| 90 | 90 | char * szBaud[] = { |
| 91 | 91 | "110", "300", "600", "1200", "2400", |
| 92 | 92 | "4800", "9600", "14400", "19200", |
| 93 | - "38400", "56000", "57600", "460800", | |
| 94 | - "128000" | |
| 93 | + "38400", "56000", "57600", "115200", | |
| 94 | + "128000", "256000" | |
| 95 | 95 | }; |
| 96 | 96 | |
| 97 | 97 | DWORD BaudTable[] = { |
| 98 | 98 | CBR_110, CBR_300, CBR_600, CBR_1200, CBR_2400, |
| 99 | 99 | CBR_4800, CBR_9600, CBR_14400, CBR_19200, CBR_38400, |
| 100 | - CBR_56000, CBR_57600, (CBR_115200)*4, CBR_128000 | |
| 100 | + CBR_56000, CBR_57600, CBR_115200, CBR_128000, CBR_256000 | |
| 101 | 101 | } ; |
| 102 | 102 | #endif |
| 103 | 103 | char * szParity[] = { "None", "Even", "Odd", "Mark", "Space" }; |
| ... | ... | @@ -273,11 +273,11 @@ void UpdateTTYInfo() |
| 273 | 273 | // |
| 274 | 274 | // update globals from dialog settings |
| 275 | 275 | // |
| 276 | +#ifdef __OPTEK_EDIT__ | |
| 276 | 277 | char gszPort_Temp[20] = {0}; |
| 277 | - | |
| 278 | +#endif | |
| 278 | 279 | GetDlgItemText(ghWndToolbarDlg, IDC_PORTCOMBO, gszPort, sizeof(gszPort)); |
| 279 | - /*MessageBox(NULL, gszPort, "TEST", MB_OK);*/ | |
| 280 | - | |
| 280 | +#ifdef __OPTEK_EDIT__ | |
| 281 | 281 | if (gszPort[3] - '0' > 0 && gszPort[4] - '0' > 0) |
| 282 | 282 | { |
| 283 | 283 | wsprintf(gszPort_Temp,"\\\\.\\%s%d","COM", (gszPort[3] - '0' )*10 + (gszPort[4] - '0')); |
| ... | ... | @@ -285,7 +285,7 @@ void UpdateTTYInfo() |
| 285 | 285 | strcpy(gszPort, gszPort_Temp); |
| 286 | 286 | /*MessageBox(NULL, gszPort, "TEST---", MB_OK);*/ |
| 287 | 287 | } |
| 288 | - | |
| 288 | +#endif | |
| 289 | 289 | BAUDRATE(TTYInfo) = GetdwTTYItem( ghWndToolbarDlg, |
| 290 | 290 | IDC_BAUDCOMBO, |
| 291 | 291 | szBaud, |
| ... | ... | @@ -474,9 +474,7 @@ void SetComboBox( HWND hCtrlWnd, WORD wTableLen, DWORD dwNewSetting ) |
| 474 | 474 | return ; |
| 475 | 475 | } |
| 476 | 476 | |
| 477 | -//???ù′??ú | |
| 478 | -//2?êy£obEnablePort£?????′??úóDD§£?bEnablePort[0]±íê?COM1£?bEnablePort[n-1]±íê?COMn | |
| 479 | -//·μ???μ£oóDD§μ?′??ú??êy | |
| 477 | +#ifdef __OPTEK_EDIT__ | |
| 480 | 478 | int EnumAllComPort(int* bEnablePort) |
| 481 | 479 | { |
| 482 | 480 | int nCommSum = 0;//¡ä??¨²??¨ºy |
| ... | ... | @@ -517,7 +515,7 @@ int EnumAllComPort(int* bEnablePort) |
| 517 | 515 | |
| 518 | 516 | return nCommSum; |
| 519 | 517 | } |
| 520 | - | |
| 518 | +#endif | |
| 521 | 519 | |
| 522 | 520 | /*----------------------------------------------------------------------------- |
| 523 | 521 | |
| ... | ... | @@ -541,24 +539,25 @@ BOOL SettingsDlgInit( HWND hDlg ) |
| 541 | 539 | { |
| 542 | 540 | char szBuffer[ MAXLEN_TEMPSTR ], szTemp[ MAXLEN_TEMPSTR ] ; |
| 543 | 541 | WORD wCount, wMaxCOM, wPosition ; |
| 542 | +#ifdef __OPTEK_EDIT__ | |
| 544 | 543 | int cmdT[MAXPORTS]; |
| 545 | - | |
| 544 | +#endif | |
| 546 | 545 | wMaxCOM = MAXPORTS ; |
| 547 | 546 | strcpy(szTemp, "COM"); |
| 548 | 547 | |
| 548 | +#ifdef __OPTEK_EDIT__ | |
| 549 | 549 | memset(cmdT,0,sizeof(cmdT)); |
| 550 | 550 | EnumAllComPort(cmdT); |
| 551 | - | |
| 552 | 551 | //for (int i=0;i<10;i++) |
| 553 | 552 | { |
| 554 | 553 | //UpdateStatus("com%d:%d\r\n",i+1,cmdT[i]); |
| 555 | 554 | } |
| 556 | - | |
| 557 | - | |
| 555 | +#endif | |
| 558 | 556 | // |
| 559 | 557 | // fill port combo box and make initial selection |
| 560 | 558 | // |
| 561 | 559 | for (wCount = 0; wCount < wMaxCOM; wCount++) { |
| 560 | +#ifdef __OPTEK_EDIT__ | |
| 562 | 561 | //wsprintf( szBuffer, "%s%d", (LPSTR) szTemp, wCount + 1 ) ; |
| 563 | 562 | if (cmdT[wCount]) |
| 564 | 563 | { |
| ... | ... | @@ -566,6 +565,11 @@ BOOL SettingsDlgInit( HWND hDlg ) |
| 566 | 565 | SendDlgItemMessage( hDlg, IDC_PORTCOMBO, CB_ADDSTRING, 0, |
| 567 | 566 | (LPARAM) (LPSTR) szBuffer ) ; |
| 568 | 567 | } |
| 568 | +#else | |
| 569 | + wsprintf( szBuffer, "%s%d", (LPSTR) szTemp, wCount + 1 ) ; | |
| 570 | + SendDlgItemMessage( hDlg, IDC_PORTCOMBO, CB_ADDSTRING, 0, | |
| 571 | + (LPARAM) (LPSTR) szBuffer ) ; | |
| 572 | +#endif | |
| 569 | 573 | } |
| 570 | 574 | |
| 571 | 575 | SendDlgItemMessage( hDlg, IDC_PORTCOMBO, CB_SETCURSEL, |
| ... | ... | @@ -717,6 +721,7 @@ BYTE GetbTTYItem(HWND hDlg, int idControl, char ** szString, DWORD * pTable, int |
| 717 | 721 | return 0; |
| 718 | 722 | } |
| 719 | 723 | |
| 724 | +#ifdef __OPTEK_EDIT__ | |
| 720 | 725 | extern char szFileName[MAX_PATH]; |
| 721 | 726 | |
| 722 | 727 | int szFileName_check(char* fileName) |
| ... | ... | @@ -733,7 +738,7 @@ int szFileName_check(char* fileName) |
| 733 | 738 | |
| 734 | 739 | return ret; |
| 735 | 740 | } |
| 736 | - | |
| 741 | +#endif | |
| 737 | 742 | /*----------------------------------------------------------------------------- |
| 738 | 743 | |
| 739 | 744 | FUNCTION: ToolbarProc(HWND, UINT, WPARAM, LPARAM) |
| ... | ... | @@ -811,6 +816,7 @@ BOOL CALLBACK ToolbarProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) |
| 811 | 816 | fRet = FALSE; |
| 812 | 817 | break; |
| 813 | 818 | |
| 819 | +#ifdef __OPTEK_EDIT__ | |
| 814 | 820 | case IDC_SENDBTN: // send button pressed |
| 815 | 821 | if (!EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), FALSE)) |
| 816 | 822 | { |
| ... | ... | @@ -819,11 +825,9 @@ BOOL CALLBACK ToolbarProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) |
| 819 | 825 | fRet = FALSE; |
| 820 | 826 | break; |
| 821 | 827 | } |
| 822 | - | |
| 823 | 828 | if (szFileName_check(szFileName)) |
| 824 | 829 | { |
| 825 | 830 | EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_SENDBTN), FALSE); |
| 826 | - // EnableWindow(GetDlgItem(ghWndToolbarDlg, IDC_PORTCOMBO), FALSE); | |
| 827 | 831 | TransferFileTextStart(szFileName); |
| 828 | 832 | } |
| 829 | 833 | else |
| ... | ... | @@ -831,10 +835,9 @@ BOOL CALLBACK ToolbarProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) |
| 831 | 835 | /*MessageBox(NULL,"-_-","test3", MB_OK);*/ |
| 832 | 836 | ErrorReporter("Please select file!\r\n"); |
| 833 | 837 | } |
| 834 | - | |
| 835 | 838 | fRet = FALSE; |
| 836 | 839 | break; |
| 837 | - | |
| 840 | +#endif | |
| 838 | 841 | case IDC_COMMEVENTSBTN: // comm events button pressed |
| 839 | 842 | DialogBox(ghInst, MAKEINTRESOURCE(IDD_COMMEVENTSDLG), ghwndMain, CommEventsProc); |
| 840 | 843 | fRet = FALSE; |
| ... | ... | @@ -847,7 +850,6 @@ BOOL CALLBACK ToolbarProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) |
| 847 | 850 | |
| 848 | 851 | case IDC_TIMEOUTSBTN: |
| 849 | 852 | DialogBox(ghInst, MAKEINTRESOURCE(IDD_TIMEOUTSDLG), ghwndMain, TimeoutsProc); |
| 850 | - break; | |
| 851 | 853 | fRet = FALSE; |
| 852 | 854 | break; |
| 853 | 855 | ... | ... |
| ... | ... | @@ -35,8 +35,6 @@ |
| 35 | 35 | #include <commctrl.h> |
| 36 | 36 | #include "mttty.h" |
| 37 | 37 | |
| 38 | -#pragma comment(lib,"winmm.lib") | |
| 39 | - | |
| 40 | 38 | // |
| 41 | 39 | // Globals used in this file only |
| 42 | 40 | // |
| ... | ... | @@ -102,7 +100,9 @@ void TransferRepeatCreate(LPCTSTR lpszFileName, DWORD dwFrequency) |
| 102 | 100 | hMenu = GetMenu(ghwndMain); |
| 103 | 101 | MenuFlags = MF_DISABLED | MF_GRAYED; |
| 104 | 102 | EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 103 | +#ifdef __OPTEK_EDIT__ | |
| 105 | 104 | EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); |
| 105 | +#endif | |
| 106 | 106 | EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); |
| 107 | 107 | EnableMenuItem(hMenu, ID_TRANSFER_ABORTREPEATEDSENDING, MF_ENABLED); |
| 108 | 108 | EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); |
| ... | ... | @@ -194,7 +194,9 @@ void TransferRepeatDestroy() |
| 194 | 194 | MenuFlags = MF_ENABLED; |
| 195 | 195 | EnableMenuItem(hMenu, ID_TRANSFER_ABORTREPEATEDSENDING, MF_DISABLED | MF_GRAYED); |
| 196 | 196 | EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 197 | +#ifdef __OPTEK_EDIT__ | |
| 197 | 198 | EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); |
| 199 | + #endif | |
| 198 | 200 | EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); |
| 199 | 201 | EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); |
| 200 | 202 | |
| ... | ... | @@ -262,7 +264,9 @@ void TransferFileTextStart(LPCTSTR lpstrFileName) |
| 262 | 264 | hMenu = GetMenu(ghwndMain); |
| 263 | 265 | MenuFlags = MF_DISABLED | MF_GRAYED; |
| 264 | 266 | EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 267 | +#ifdef __OPTEK_EDIT__ | |
| 265 | 268 | EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); |
| 269 | +#endif | |
| 266 | 270 | EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); |
| 267 | 271 | EnableMenuItem(hMenu, ID_TRANSFER_ABORTSENDING, MF_ENABLED); |
| 268 | 272 | EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); |
| ... | ... | @@ -333,7 +337,9 @@ void TransferFileTextEnd() |
| 333 | 337 | hMenu = GetMenu(ghwndMain); |
| 334 | 338 | MenuFlags = MF_ENABLED; |
| 335 | 339 | EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 340 | +#ifdef __OPTEK_EDIT__ | |
| 336 | 341 | EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); |
| 342 | +#endif | |
| 337 | 343 | EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); |
| 338 | 344 | EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); |
| 339 | 345 | EnableMenuItem(hMenu, ID_TRANSFER_ABORTSENDING, MF_DISABLED | MF_GRAYED); |
| ... | ... | @@ -343,7 +349,9 @@ void TransferFileTextEnd() |
| 343 | 349 | // |
| 344 | 350 | ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_ABORTBTN), SW_HIDE); |
| 345 | 351 | ShowWindow(GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS), SW_HIDE); |
| 352 | +#ifdef __OPTEK_EDIT__ | |
| 346 | 353 | EnableWindow( GetDlgItem(ghWndToolbarDlg, IDC_SENDBTN), TRUE); |
| 354 | +#endif | |
| 347 | 355 | // |
| 348 | 356 | // close the file |
| 349 | 357 | // |
| ... | ... | @@ -391,7 +399,9 @@ void ReceiveFileText(LPCTSTR lpstrFileName) |
| 391 | 399 | // disable transfer menu |
| 392 | 400 | // |
| 393 | 401 | EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 402 | +#ifdef __OPTEK_EDIT__ | |
| 394 | 403 | EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); |
| 404 | +#endif | |
| 395 | 405 | EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); |
| 396 | 406 | EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); |
| 397 | 407 | |
| ... | ... | @@ -419,7 +429,9 @@ void ReceiveFileText(LPCTSTR lpstrFileName) |
| 419 | 429 | // enable transfer menu |
| 420 | 430 | // |
| 421 | 431 | EnableMenuItem(hMenu, ID_TRANSFER_SENDFILETEXT, MenuFlags); |
| 432 | +#ifdef __OPTEK_EDIT__ | |
| 422 | 433 | EnableMenuItem(hMenu, IDC_SENDBTN, MenuFlags); |
| 434 | +#endif | |
| 423 | 435 | EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags); |
| 424 | 436 | EnableMenuItem(hMenu, ID_TRANSFER_SENDREPEATEDLY, MenuFlags); |
| 425 | 437 | |
| ... | ... | @@ -685,21 +697,19 @@ HISTORY: Date: Author: Comment: |
| 685 | 697 | |
| 686 | 698 | -----------------------------------------------------------------------------*/ |
| 687 | 699 | |
| 700 | +#ifdef __OPTEK_EDIT__ | |
| 688 | 701 | #define HEADER_START 0x44332211 |
| 689 | 702 | #define BAUDRATE_DET_DATA 0xFFAAFF55 |
| 690 | 703 | #define BAUDRATE_DET_DATA_LEN 0xB00 |
| 691 | 704 | #define HEADER_LEN 0x20 |
| 692 | 705 | #define MAC_ADDR_OFFSET 0x68000 |
| 693 | - | |
| 694 | 706 | #define U32 unsigned int |
| 695 | - | |
| 696 | 707 | enum { |
| 697 | 708 | READ_CPU_TICKS_ERR, |
| 698 | 709 | WRONG_FILE_FORMAT, |
| 699 | 710 | CHECKSUM_ERROR, |
| 700 | 711 | FILE_CHCK_SUCCESSFUL |
| 701 | 712 | }; |
| 702 | - | |
| 703 | 713 | typedef struct { |
| 704 | 714 | U32 rx_header_start; |
| 705 | 715 | U32 rx_copy_addr; |
| ... | ... | @@ -894,7 +904,7 @@ int fileCheck(char *fData,char *dataLen) |
| 894 | 904 | } |
| 895 | 905 | return ret; |
| 896 | 906 | } |
| 897 | - | |
| 907 | +#endif | |
| 898 | 908 | DWORD WINAPI TransferThreadProc(LPVOID lpV) |
| 899 | 909 | { |
| 900 | 910 | DWORD dwPacketSize, dwMaxPackets, dwFileSize; |
| ... | ... | @@ -904,12 +914,13 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) |
| 904 | 914 | HANDLE hDataHeap; |
| 905 | 915 | BOOL fStarted = TRUE; |
| 906 | 916 | BOOL fAborting = FALSE; |
| 917 | +#ifdef __OPTEK_EDIT__ | |
| 907 | 918 | BOOL userAborting = TRUE; |
| 908 | 919 | char *lpfileBuf; |
| 909 | 920 | char *pRead; |
| 910 | 921 | DWORD dwRead; |
| 911 | 922 | int err; |
| 912 | - | |
| 923 | +#endif | |
| 913 | 924 | |
| 914 | 925 | hFileHandle = (HANDLE) lpV; |
| 915 | 926 | hWndProgress = GetDlgItem(ghWndStatusDlg, IDC_TRANSFERPROGRESS); |
| ... | ... | @@ -919,7 +930,6 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) |
| 919 | 930 | fAborting = TRUE; |
| 920 | 931 | else { |
| 921 | 932 | SendMessage(hWndProgress, PBM_SETRANGE, 0, MAKELPARAM(0, dwMaxPackets+1)); |
| 922 | -// SendMessage(hWndProgress, PBM_SETRANGE, 0, MAKELPARAM(0, 100)); | |
| 923 | 933 | SendMessage(hWndProgress, PBM_SETSTEP, (WPARAM) 1, 0); |
| 924 | 934 | SendMessage(hWndProgress, PBM_SETPOS, 0, 0); |
| 925 | 935 | } |
| ... | ... | @@ -928,14 +938,18 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) |
| 928 | 938 | if (!fAborting) { |
| 929 | 939 | SYSTEM_INFO sysInfo; |
| 930 | 940 | GetSystemInfo(&sysInfo); |
| 931 | -// hDataHeap = HeapCreate(0, sysInfo.dwPageSize * 2, sysInfo.dwPageSize * 10); | |
| 932 | - hDataHeap = HeapCreate(0, sysInfo.dwPageSize * 20,0); | |
| 941 | +#ifdef __OPTEK_EDIT__ | |
| 942 | +hDataHeap = HeapCreate(0, sysInfo.dwPageSize * 20,0); | |
| 943 | +#else | |
| 944 | +hDataHeap = HeapCreate(0, sysInfo.dwPageSize * 2, sysInfo.dwPageSize * 10); | |
| 945 | +#endif | |
| 933 | 946 | if (hDataHeap == NULL) { |
| 934 | 947 | ErrorReporter("HeapCreate (Data Heap)"); |
| 935 | 948 | fAborting = TRUE; |
| 936 | 949 | } |
| 937 | 950 | } |
| 938 | 951 | |
| 952 | +#ifdef __OPTEK_EDIT__ | |
| 939 | 953 | /**********************check file*********************************/ |
| 940 | 954 | lpfileBuf = HeapAlloc(hDataHeap, 0, dwFileSize); |
| 941 | 955 | pRead = lpfileBuf; |
| ... | ... | @@ -969,17 +983,11 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) |
| 969 | 983 | userAborting =FALSE; |
| 970 | 984 | fAborting = TRUE; |
| 971 | 985 | } |
| 972 | - | |
| 973 | - | |
| 974 | - | |
| 975 | - if (WaitForSingleObject(hTransferAbortEvent, 0) == WAIT_OBJECT_0) | |
| 976 | - fAborting = TRUE; | |
| 977 | - | |
| 986 | +#endif | |
| 978 | 987 | // inform writer thread that a file is about to be transferred |
| 979 | 988 | if (!fAborting) { |
| 980 | 989 | if (!WriterAddNewNode(WRITE_FILESTART, dwFileSize, 0, NULL, NULL, NULL)) |
| 981 | 990 | fAborting = TRUE; |
| 982 | - | |
| 983 | 991 | } |
| 984 | 992 | |
| 985 | 993 | OutputDebugString("Xfer: About to start sending data\n"); |
| ... | ... | @@ -987,34 +995,52 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) |
| 987 | 995 | // Get Transfer Start Time |
| 988 | 996 | dwStartTime = GetTickCount(); |
| 989 | 997 | |
| 998 | + if (WaitForSingleObject(hTransferAbortEvent, 0) == WAIT_OBJECT_0) | |
| 999 | + fAborting = TRUE; | |
| 1000 | + | |
| 990 | 1001 | while (!fAborting) { |
| 1002 | + char * lpDataBuf; | |
| 991 | 1003 | PWRITEREQUEST pWrite; |
| 992 | - char * lpDataBuf; | |
| 993 | 1004 | |
| 994 | 1005 | // transfer file, loop until all blocks of file have been read |
| 995 | 1006 | lpDataBuf = HeapAlloc(hDataHeap, 0, dwPacketSize); |
| 996 | 1007 | pWrite = HeapAlloc(ghWriterHeap, 0, sizeof(WRITEREQUEST)); |
| 997 | 1008 | |
| 998 | - if ((lpDataBuf != NULL) && (pWrite != NULL)) { | |
| 1009 | + if ((lpDataBuf != NULL) && (pWrite != NULL)) | |
| 1010 | + { | |
| 999 | 1011 | |
| 1012 | +#ifdef __OPTEK_EDIT__ | |
| 1000 | 1013 | DWORD wrLen; |
| 1001 | 1014 | |
| 1002 | 1015 | // read from file into new buffer |
| 1003 | 1016 | //if (ReadFile(hFileHandle, lpDataBuf, dwPacketSize, &dwRead, NULL)) { |
| 1004 | - if (dwRead > dwPacketSize){ | |
| 1017 | + if (dwRead > dwPacketSize) | |
| 1018 | + { | |
| 1005 | 1019 | memcpy(lpDataBuf,pRead,dwPacketSize); |
| 1006 | 1020 | WriterAddExistingNode(pWrite, WRITE_FILE, dwPacketSize, 0, lpDataBuf, hDataHeap, hWndProgress); |
| 1007 | 1021 | dwRead -= dwPacketSize; |
| 1008 | 1022 | pRead += dwPacketSize; |
| 1009 | 1023 | } |
| 1010 | - else{ | |
| 1024 | + else | |
| 1025 | + { | |
| 1011 | 1026 | memcpy(lpDataBuf,pRead,dwRead); |
| 1012 | 1027 | WriterAddExistingNode(pWrite, WRITE_FILE, dwRead, 0, lpDataBuf, hDataHeap, hWndProgress); |
| 1013 | 1028 | // eof |
| 1014 | 1029 | break; |
| 1015 | 1030 | } |
| 1031 | +#else | |
| 1032 | + DWORD dwRead; | |
| 1033 | + // read from file into new buffer | |
| 1034 | + if (ReadFile(hFileHandle, lpDataBuf, dwPacketSize, &dwRead, NULL)) | |
| 1035 | + { | |
| 1036 | + WriterAddExistingNode(pWrite, WRITE_FILE, dwRead, 0, lpDataBuf, hDataHeap, hWndProgress); | |
| 1037 | + if (dwRead != dwPacketSize) // eof | |
| 1038 | + break; | |
| 1039 | + } | |
| 1040 | +#endif | |
| 1016 | 1041 | } |
| 1017 | - else { | |
| 1042 | + else | |
| 1043 | + { | |
| 1018 | 1044 | BOOL fRes; |
| 1019 | 1045 | /* |
| 1020 | 1046 | Either the data heap is full, or the writer heap is full. |
| ... | ... | @@ -1053,16 +1079,17 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) |
| 1053 | 1079 | fAborting = TRUE; |
| 1054 | 1080 | } |
| 1055 | 1081 | |
| 1056 | - if (lpfileBuf) { | |
| 1082 | +#ifdef __OPTEK_EDIT__ | |
| 1083 | + if (lpfileBuf) | |
| 1084 | + { | |
| 1057 | 1085 | BOOL fRes; |
| 1058 | - | |
| 1059 | 1086 | EnterCriticalSection(&gcsDataHeap); |
| 1060 | 1087 | fRes = HeapFree(hDataHeap, 0, lpfileBuf); |
| 1061 | 1088 | LeaveCriticalSection(&gcsDataHeap); |
| 1062 | 1089 | if (!fRes) |
| 1063 | 1090 | ErrorReporter("HeapFree (Data block)"); |
| 1064 | 1091 | } |
| 1065 | - | |
| 1092 | +#endif | |
| 1066 | 1093 | OutputDebugString("Xfer: Done sending packets.\n"); |
| 1067 | 1094 | |
| 1068 | 1095 | if (fAborting) { |
| ... | ... | @@ -1127,7 +1154,11 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV) |
| 1127 | 1154 | // If I am done without user intervention, then post the |
| 1128 | 1155 | // "abort" message myself. This will cause the main thread to |
| 1129 | 1156 | // clean up after the file transfer. |
| 1157 | +#ifdef __OPTEK_EDIT__ | |
| 1130 | 1158 | if ((!fAborting)|| (!userAborting)) |
| 1159 | +#else | |
| 1160 | + if (!fAborting) | |
| 1161 | +#endif | |
| 1131 | 1162 | { |
| 1132 | 1163 | PostMessage(ghwndMain, WM_COMMAND, ID_TRANSFER_ABORTSENDING, 0); |
| 1133 | 1164 | } | ... | ... |
| ... | ... | @@ -14,127 +14,7 @@ |
| 14 | 14 | |
| 15 | 15 | -----------------------------------------------------------------------------*/ |
| 16 | 16 | |
| 17 | -// | |
| 18 | -// constant definitions | |
| 19 | -// | |
| 20 | 17 | |
| 21 | -// | |
| 22 | -// hard coded maximum number of ports | |
| 23 | -// | |
| 24 | -#define MAXPORTS 32 | |
| 25 | - | |
| 26 | -// | |
| 27 | -// terminal size | |
| 28 | -// | |
| 29 | -#define MAXROWS 50 | |
| 30 | -#define MAXCOLS 80 | |
| 31 | - | |
| 32 | -// | |
| 33 | -// cursor states | |
| 34 | -// | |
| 35 | -#define CS_HIDE 0x00 | |
| 36 | -#define CS_SHOW 0x01 | |
| 37 | - | |
| 38 | -// | |
| 39 | -// ascii definitions | |
| 40 | -// | |
| 41 | -#define ASCII_BEL 0x07 | |
| 42 | -#define ASCII_BS 0x08 | |
| 43 | -#define ASCII_LF 0x0A | |
| 44 | -#define ASCII_CR 0x0D | |
| 45 | -#define ASCII_XON 0x11 | |
| 46 | -#define ASCII_XOFF 0x13 | |
| 47 | - | |
| 48 | -// | |
| 49 | -// data structures | |
| 50 | -// | |
| 51 | -struct TTYInfoStruct | |
| 52 | -{ | |
| 53 | - HANDLE hCommPort, hReaderStatus, hWriter ; | |
| 54 | - DWORD dwEventFlags; | |
| 55 | - CHAR Screen[MAXCOLS * MAXROWS]; | |
| 56 | - CHAR chFlag, chXON, chXOFF; | |
| 57 | - WORD wXONLimit, wXOFFLimit; | |
| 58 | - DWORD fRtsControl; | |
| 59 | - DWORD fDtrControl; | |
| 60 | - BOOL fConnected, fTransferring, fRepeating, | |
| 61 | - fLocalEcho, fNewLine, | |
| 62 | - fDisplayErrors, fAutowrap, | |
| 63 | - fCTSOutFlow, fDSROutFlow, fDSRInFlow, | |
| 64 | - fXonXoffOutFlow, fXonXoffInFlow, | |
| 65 | - fTXafterXoffSent, | |
| 66 | - fNoReading, fNoWriting, fNoEvents, fNoStatus, | |
| 67 | - fDisplayTimeouts; | |
| 68 | - BYTE bPort, bByteSize, bParity, bStopBits ; | |
| 69 | - DWORD dwBaudRate ; | |
| 70 | - WORD wCursorState ; | |
| 71 | - HFONT hTTYFont ; | |
| 72 | - LOGFONT lfTTYFont ; | |
| 73 | - DWORD rgbFGColor ; | |
| 74 | - COMMTIMEOUTS timeoutsorig; | |
| 75 | - COMMTIMEOUTS timeoutsnew; | |
| 76 | - int xSize, ySize, xScroll, yScroll, xOffset, yOffset, | |
| 77 | - nColumn, nRow, xChar, yChar , nCharPos; | |
| 78 | - | |
| 79 | -} TTYInfo; | |
| 80 | - | |
| 81 | -// | |
| 82 | -// macros ( for easier readability ) | |
| 83 | -// | |
| 84 | -#define COMDEV( x ) (x.hCommPort) | |
| 85 | -#define CURSORSTATE( x ) (x.wCursorState) | |
| 86 | -#define PORT( x ) (x.bPort) | |
| 87 | -#define SCREEN( x ) (x.Screen) | |
| 88 | -#define CONNECTED( x ) (x.fConnected) | |
| 89 | -#define TRANSFERRING( x ) (x.fTransferring) | |
| 90 | -#define REPEATING( x ) (x.fRepeating) | |
| 91 | -#define LOCALECHO( x ) (x.fLocalEcho) | |
| 92 | -#define NEWLINE( x ) (x.fNewLine) | |
| 93 | -#define AUTOWRAP( x ) (x.fAutowrap) | |
| 94 | -#define BYTESIZE( x ) (x.bByteSize) | |
| 95 | -#define PARITY( x ) (x.bParity) | |
| 96 | -#define STOPBITS( x ) (x.bStopBits) | |
| 97 | -#define BAUDRATE( x ) (x.dwBaudRate) | |
| 98 | -#define HTTYFONT( x ) (x.hTTYFont) | |
| 99 | -#define LFTTYFONT( x ) (x.lfTTYFont) | |
| 100 | -#define FGCOLOR( x ) (x.rgbFGColor) | |
| 101 | -#define XSIZE( x ) (x.xSize) | |
| 102 | -#define YSIZE( x ) (x.ySize) | |
| 103 | -#define XSCROLL( x ) (x.xScroll) | |
| 104 | -#define YSCROLL( x ) (x.yScroll) | |
| 105 | -#define XOFFSET( x ) (x.xOffset) | |
| 106 | -#define YOFFSET( x ) (x.yOffset) | |
| 107 | -#define COLUMN( x ) (x.nColumn) | |
| 108 | -#define ROW( x ) (x.nRow) | |
| 109 | -#define XCHAR( x ) (x.xChar) | |
| 110 | -#define YCHAR( x ) (x.yChar) | |
| 111 | -#define DISPLAYERRORS( x ) (x.fDisplayErrors) | |
| 112 | -#define TIMEOUTSORIG( x ) (x.timeoutsorig) | |
| 113 | -#define TIMEOUTSNEW( x ) (x.timeoutsnew) | |
| 114 | -#define WRITERTHREAD( x ) (x.hWriter) | |
| 115 | -#define READSTATTHREAD( x ) (x.hReaderStatus) | |
| 116 | -#define EVENTFLAGS( x ) (x.dwEventFlags) | |
| 117 | -#define FLAGCHAR( x ) (x.chFlag) | |
| 118 | -#define SCREENCHAR( x, col, row ) (x.Screen[row * MAXCOLS + col]) | |
| 119 | - | |
| 120 | -#define DTRCONTROL( x ) (x.fDtrControl) | |
| 121 | -#define RTSCONTROL( x ) (x.fRtsControl) | |
| 122 | -#define XONCHAR( x ) (x.chXON) | |
| 123 | -#define XOFFCHAR( x ) (x.chXOFF) | |
| 124 | -#define XONLIMIT( x ) (x.wXONLimit) | |
| 125 | -#define XOFFLIMIT( x ) (x.wXOFFLimit) | |
| 126 | -#define CTSOUTFLOW( x ) (x.fCTSOutFlow) | |
| 127 | -#define DSROUTFLOW( x ) (x.fDSROutFlow) | |
| 128 | -#define DSRINFLOW( x ) (x.fDSRInFlow) | |
| 129 | -#define XONXOFFOUTFLOW( x ) (x.fXonXoffOutFlow) | |
| 130 | -#define XONXOFFINFLOW( x ) (x.fXonXoffInFlow) | |
| 131 | -#define TXAFTERXOFFSENT(x) (x.fTXafterXoffSent) | |
| 132 | - | |
| 133 | -#define NOREADING( x ) (x.fNoReading) | |
| 134 | -#define NOWRITING( x ) (x.fNoWriting) | |
| 135 | -#define NOEVENTS( x ) (x.fNoEvents) | |
| 136 | -#define NOSTATUS( x ) (x.fNoStatus) | |
| 137 | -#define SHOWTIMEOUTS( x ) (x.fDisplayTimeouts) | |
| 138 | 18 | |
| 139 | 19 | //--------------------------------------------------------------------------- |
| 140 | 20 | // End of File: ttyinfo.h | ... | ... |
| ... | ... | @@ -277,7 +277,11 @@ void WriterAbort(PWRITEREQUEST pAbortNode) |
| 277 | 277 | { |
| 278 | 278 | PWRITEREQUEST pCurrent; |
| 279 | 279 | PWRITEREQUEST pNextNode; |
| 280 | +#ifdef __OPTEK_EDIT__ | |
| 280 | 281 | BOOL fRes = TRUE; |
| 282 | +#else | |
| 283 | + BOOL fRes; | |
| 284 | +#endif | |
| 281 | 285 | int i = 0; |
| 282 | 286 | char szMessage[30]; |
| 283 | 287 | ... | ... |
Please
register
or
login
to post a comment