/*------------------------------------------------------------------------------ -- FUNCTION: DisplayFrameInfo -- -- DATE: Dec 2, 2010 -- -- REVISIONS: -- -- DESIGNER: Daniel Wright -- -- PROGRAMMER: Daniel Wright -- -- INTERFACE: DisplayFrameInfo(HWND hWnd, FRAME frame) -- hWnd - a handle to the window -- frame - frame to display information about -- -- RETURNS: VOID. -- -- NOTES: Uses GetOpenFileName to get the name of the file to be -- transmitted and opens it. ------------------------------------------------------------------------------*/ VOID DisplayFrameInfo(HWND hWnd, FRAME frame){ PWNDDATA pwd = NULL; int a ; CHAR* b = (CHAR*)malloc(sizeof(CHAR)*4); CHAR* c = (CHAR*)malloc(sizeof(CHAR)); int i = 0; int j; SetScrollRegion(hWnd,2,LINES_PER_SCRN); ScrollUp(hWnd); pwd = (PWNDDATA) GetWindowLongPtr(hWnd, 0); a= pwd->NumOfFrames; sprintf(b, "%04x", frame.length); sprintf(c, "%02x", frame.crc); MoveCursor( hWnd, 3, 2, FALSE); for(i = 0; i < 3; i++){ j=(a)%(10); a /=10; UpdateDisplayBuf(hWnd, j+48); X -=2; } MoveCursor( hWnd, 12, 2, FALSE); for(i = 0; i < 4; i++) UpdateDisplayBuf(hWnd, b[i]); MoveCursor(hWnd, 29, 2, FALSE); for(i = 0; i < 3; i++){ UpdateDisplayBuf(hWnd, c[i]); } InvalidateRect(hWnd,NULL,FALSE); }
void CScreenDevice::Write (char chChar) { switch (m_nState) { case ScreenStateStart: switch (chChar) { case '\b': CursorLeft (); break; case '\t': Tabulator (); break; case '\n': NewLine (); break; case '\r': CarriageReturn (); break; case '\x1b': m_nState = ScreenStateEscape; break; default: DisplayChar (chChar); break; } break; case ScreenStateEscape: switch (chChar) { case 'M': ReverseScroll (); m_nState = ScreenStateStart; break; case '[': m_nState = ScreenStateBracket; break; default: m_nState = ScreenStateStart; break; } break; case ScreenStateBracket: switch (chChar) { case '?': m_nState = ScreenStateQuestionMark; break; case 'A': CursorUp (); m_nState = ScreenStateStart; break; case 'B': CursorDown (); m_nState = ScreenStateStart; break; case 'C': CursorRight (); m_nState = ScreenStateStart; break; case 'H': CursorHome (); m_nState = ScreenStateStart; break; case 'J': ClearDisplayEnd (); m_nState = ScreenStateStart; break; case 'K': ClearLineEnd (); m_nState = ScreenStateStart; break; case 'L': InsertLines (1); m_nState = ScreenStateStart; break; case 'M': DeleteLines (1); m_nState = ScreenStateStart; break; case 'P': DeleteChars (1); m_nState = ScreenStateStart; break; default: if ('0' <= chChar && chChar <= '9') { m_nParam1 = chChar - '0'; m_nState = ScreenStateNumber1; } else { m_nState = ScreenStateStart; } break; } break; case ScreenStateNumber1: switch (chChar) { case ';': m_nState = ScreenStateSemicolon; break; case 'L': InsertLines (m_nParam1); m_nState = ScreenStateStart; break; case 'M': DeleteLines (m_nParam1); m_nState = ScreenStateStart; break; case 'P': DeleteChars (m_nParam1); m_nState = ScreenStateStart; break; case 'X': EraseChars (m_nParam1); m_nState = ScreenStateStart; break; case 'h': case 'l': if (m_nParam1 == 4) { InsertMode (chChar == 'h'); } m_nState = ScreenStateStart; break; case 'm': SetStandoutMode (m_nParam1); m_nState = ScreenStateStart; break; default: if ('0' <= chChar && chChar <= '9') { m_nParam1 *= 10; m_nParam1 += chChar - '0'; if (m_nParam1 > 99) { m_nState = ScreenStateStart; } } else { m_nState = ScreenStateStart; } break; } break; case ScreenStateSemicolon: if ('0' <= chChar && chChar <= '9') { m_nParam2 = chChar - '0'; m_nState = ScreenStateNumber2; } else { m_nState = ScreenStateStart; } break; case ScreenStateQuestionMark: if ('0' <= chChar && chChar <= '9') { m_nParam1 = chChar - '0'; m_nState = ScreenStateNumber3; } else { m_nState = ScreenStateStart; } break; case ScreenStateNumber2: switch (chChar) { case 'H': CursorMove (m_nParam1, m_nParam2); m_nState = ScreenStateStart; break; case 'r': SetScrollRegion (m_nParam1, m_nParam2); m_nState = ScreenStateStart; break; default: if ('0' <= chChar && chChar <= '9') { m_nParam2 *= 10; m_nParam2 += chChar - '0'; if (m_nParam2 > 199) { m_nState = ScreenStateStart; } } else { m_nState = ScreenStateStart; } break; } break; case ScreenStateNumber3: switch (chChar) { case 'h': case 'l': if (m_nParam1 == 25) { SetCursorMode (chChar == 'h'); } m_nState = ScreenStateStart; break; default: if ('0' <= chChar && chChar <= '9') { m_nParam1 *= 10; m_nParam1 += chChar - '0'; if (m_nParam1 > 99) { m_nState = ScreenStateStart; } } else { m_nState = ScreenStateStart; } break; } break; default: m_nState = ScreenStateStart; break; } }