Commit 5740e5990d094626b4b8bb9b73c745feddad092a

Authored by xiemeng
1 parent 85d3a486

讲PCB输出的内容转换成中文, 并且根据输出结果切换窗口颜色

Showing 2 changed files with 48 additions and 2 deletions
... ... @@ -59,6 +59,7 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV)
59 59 BOOL fThreadDone = FALSE;
60 60 char lpBuf[AMOUNT_TO_READ];
61 61 char lpBuf_first[AMOUNT_TO_READ];
  62 + char Flashed_percent;
62 63 HWND hTTY;
63 64
64 65 hTTY = (HANDLE) lpV;
... ... @@ -197,15 +198,56 @@ DWORD WINAPI ReaderAndStatusProc(LPVOID lpV)
197 198
198 199 if (strstr(lpBuf,"ROM boot"))
199 200 {
200   - UpdateStatus("ÏÂÔØÄ£Ê½\r\n");
  201 + if (GetTickCount() - TTYInfo.tickcountFinish <2000)
  202 + {// 在很短的时间内收到PCB板的下载信号, 视为PCB板自动复位, 而不是合上夹具
  203 + return;
  204 + }
  205 + TTYInfo.rgbBGColor = RGB(255,255,255);
  206 + OutputABuffer(hTTY, "进入下载模式\r\n", dwRead);
  207 +
201 208 TTYInfo.DownloadReday = TRUE;
202 209 if (strlen(TTYInfo.szFileName) != 0)
203 210 TransferFileTextStart(TTYInfo.szFileName);
204 211 }
  212 + //
  213 + else if (strstr(lpBuf,"Verify successful"))
  214 + {
  215 + TTYInfo.tickcountFinish = GetTickCount();
  216 + TTYInfo.rgbBGColor = RGB(50,255,50);
  217 + OutputABuffer(hTTY, "下载完成\r\n", dwRead);
  218 + TTYInfo.DownloadReday = FALSE;
  219 + }
  220 + else if (strstr(lpBuf,"Programming:"))
  221 + {
  222 + char *pchar_percent = strstr(lpBuf,"Programming:");
  223 + char ascbufpercent[64];
  224 + if(pchar_percent != NULL)
  225 + {
  226 + TTYInfo.tickcountFinish = GetTickCount();
  227 + TTYInfo.rgbBGColor = RGB(255,255,255);
  228 + memset(ascbufpercent,0,64);
  229 + strncpy(ascbufpercent,pchar_percent+12,2);
  230 + Flashed_percent = atoi(ascbufpercent);
  231 + sprintf(ascbufpercent,"下载已完成%d\r\n",Flashed_percent);
  232 + OutputABuffer(hTTY, ascbufpercent, dwRead);
  233 + TTYInfo.DownloadReday = FALSE;
  234 + }
  235 + }
  236 + else if (strstr(lpBuf,"Verify fail"))
  237 + {
  238 + //TTYInfo.tickcountFinish = GetTickCount();
  239 + TTYInfo.rgbBGColor = RGB(255,50,50);
  240 + OutputABuffer(hTTY, "下载失败\r\n", dwRead);
  241 +
  242 + TTYInfo.DownloadReday = FALSE;
  243 + }
205 244 else
  245 + {
  246 + TTYInfo.rgbBGColor = RGB(255,255,255);
  247 + OutputABuffer(hTTY, lpBuf, dwRead);
206 248 TTYInfo.DownloadReday = FALSE;
  249 + }
207 250
208   - OutputABuffer(hTTY, lpBuf, dwRead);
209 251
210 252 }
211 253 }
... ...
... ... @@ -71,6 +71,7 @@ struct TTYInfoStruct
71 71 HFONT hTTYFont ;
72 72 LOGFONT lfTTYFont ;
73 73 DWORD rgbFGColor ;
  74 + DWORD rgbBGColor ;
74 75 COMMTIMEOUTS timeoutsorig;
75 76 COMMTIMEOUTS timeoutsnew;
76 77 int xSize, ySize, xScroll, yScroll, xOffset, yOffset,
... ... @@ -78,6 +79,8 @@ struct TTYInfoStruct
78 79 char szFileName[MAX_PATH];
79 80 BYTE unOpenedPortAry[255];
80 81 BOOL DownloadReday;
  82 + DWORD tickcountFinish; //Íê³ÉÏÂÔØµÄʱ¼ä
  83 +
81 84
82 85 } TTYInfo;
83 86
... ... @@ -101,6 +104,7 @@ struct TTYInfoStruct
101 104 #define HTTYFONT( x ) (x.hTTYFont)
102 105 #define LFTTYFONT( x ) (x.lfTTYFont)
103 106 #define FGCOLOR( x ) (x.rgbFGColor)
  107 +#define BGCOLOR( x ) (x.rgbBGColor)
104 108 #define XSIZE( x ) (x.xSize)
105 109 #define YSIZE( x ) (x.ySize)
106 110 #define XSCROLL( x ) (x.xScroll)
... ...
Please register or login to post a comment