Commit 807fb556c28aa1fd6fd50963f69c9967c4b7f35d

Authored by xiemeng
1 parent 33f26133

随机蓝牙地址

... ... @@ -31,6 +31,7 @@
31 31
32 32 #include <windows.h>
33 33 #include <commctrl.h>
  34 +#include <shlwapi.h>
34 35 #include <stdio.h>
35 36 #include "mttty.h"
36 37
... ... @@ -66,6 +67,18 @@ HISTORY: Date: Author: Comment:
66 67 void GlobalInitialize()
67 68 {
68 69 int cyMenuHeight, cyCaptionHeight, cyFrameHeight;
  70 + char tempdirBin[20];
  71 + memset(tempdirBin,0,20);
  72 + strcpy(tempdirBin,TOPWELL_TEMPBIN_DIR);
  73 +
  74 + if(GetModuleFileName(NULL, g_appdata.FolderPath, MAX_PATH) > 0)
  75 + PathRemoveFileSpec(g_appdata.FolderPath);
  76 + else
  77 + GetCurrentDirectory(MAX_PATH, g_appdata.FolderPath);
  78 + strcat(g_appdata.FolderPath,TOPWELL_TEMPBIN_DIR);
  79 + if (FALSE==(BOOL)PathFileExists(g_appdata.FolderPath)) //最后的\\号有无都没关系
  80 + CreateDirectory(g_appdata.FolderPath, NULL);
  81 +
69 82
70 83 // critical sections in status reporting & node management
71 84 // 初始化互斥对象
... ... @@ -272,7 +285,7 @@ BOOL InitTTYInfo()
272 285 //
273 286 // setup default font information
274 287 //
275   - g_appdata.lfTTYFont.lfHeight = 20 ;
  288 + g_appdata.lfTTYFont.lfHeight = 16 ;
276 289 g_appdata.lfTTYFont.lfWidth = 0 ;
277 290 g_appdata.lfTTYFont.lfEscapement = 0 ;
278 291 g_appdata.lfTTYFont.lfOrientation = 0 ;
... ... @@ -287,6 +300,8 @@ BOOL InitTTYInfo()
287 300 g_appdata.lfTTYFont.lfPitchAndFamily = FIXED_PITCH | FF_MODERN ;
288 301 strcpy( g_appdata.lfTTYFont.lfFaceName, "宋体" ) ;
289 302 g_appdata.DownloadReday = FALSE;
  303 + g_appdata.GroupHead = 'A';
  304 +
290 305
291 306 InitNewFont( g_appdata.lfTTYFont, RGB(0,0,0));
292 307
... ...
... ... @@ -32,6 +32,7 @@
32 32 #include <windows.h>
33 33 #include "mttty.h"
34 34
  35 +
35 36 /*
36 37 Prototypes for functions called only within this file
37 38 */
... ... @@ -216,7 +217,10 @@ int WINAPI MTTTYWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
216 217 //
217 218 // 由于创建了主窗口,我现在可以打开所有其他窗口
218 219 //
  220 +
219 221 InitTTYInfo();
  222 +
  223 +
220 224 OpenTTYChildWindow(hwnd);
221 225 OpenSettingsToolbar(hwnd);
222 226 OpenStatusToolbar(hwnd);
... ... @@ -304,21 +308,21 @@ void CmdDispatch(int iMenuChoice, HWND hwnd, LPARAM lParam)
304 308 // case ID_HELP_ABOUTMTTTY:
305 309 // CmdAbout(hwnd);
306 310 // break;
307   - case ID_TRANSFER_RECEIVEFILETEXT:
308   - {// 接收文件
309   - char * szFilter = "Text Files\0*.TXT\0";
310   - OPENFILENAME ofn = {0};
311   - ofn.lStructSize = sizeof(OPENFILENAME);
312   - ofn.hwndOwner = hwnd;
313   - ofn.lpstrFilter = szFilter;
314   - ofn.lpstrFile = szFileName;
315   - ofn.nMaxFile = MAX_PATH;
316   - ofn.lpstrTitle = "Receive File";
317   - ofn.Flags = OFN_OVERWRITEPROMPT;
318   - if (!GetSaveFileName(&ofn)) break;
319   - ReceiveFileText(szFileName);
320   - }
321   - break;
  311 +// case ID_TRANSFER_RECEIVEFILETEXT:
  312 +// {// 接收文件
  313 +// char * szFilter = "Text Files\0*.TXT\0";
  314 +// OPENFILENAME ofn = {0};
  315 +// ofn.lStructSize = sizeof(OPENFILENAME);
  316 +// ofn.hwndOwner = hwnd;
  317 +// ofn.lpstrFilter = szFilter;
  318 +// ofn.lpstrFile = szFileName;
  319 +// ofn.nMaxFile = MAX_PATH;
  320 +// ofn.lpstrTitle = "Receive File";
  321 +// ofn.Flags = OFN_OVERWRITEPROMPT;
  322 +// if (!GetSaveFileName(&ofn)) break;
  323 +// ReceiveFileText(szFileName);
  324 +// }
  325 +// break;
322 326 // case ID_TRANSFER_SENDREPEATEDLY:
323 327 // {// 重复发送
324 328 // DWORD dwFreq;
... ...
... ... @@ -20,6 +20,8 @@
20 20
21 21 #include "resource.h"
22 22 //#include "ttyinfo.h"
  23 +#include "shlwapi.h"
  24 +
23 25 #pragma comment(lib,"ws2_32.lib")
24 26 //
25 27
... ... @@ -98,14 +100,18 @@ struct TTYInfoStruct
98 100
99 101 //HANDLE hFileOfDongleBin;
100 102 HANDLE hFileOfEarphoneBin;
  103 + HANDLE hTempEarphoneBin;
101 104 DWORD BinSizeFileEarphone,MaxPackets;
102 105 char BufEarphoneBin[3*1024*1024];
  106 + char GroupHead;
  107 + WORD Groupid;
  108 + char FolderPath[256];
103 109
104 110
105 111 } g_appdata;
106 112
107 113
108   -
  114 +#define TOPWELL_TEMPBIN_DIR "\\tempBin"
109 115
110 116 // GLOBAL DEFINES
111 117 //输出buff size
... ... @@ -148,7 +154,7 @@ struct TTYInfoStruct
148 154 #define STARTXWINDOW 80
149 155 #define STARTYWINDOW 70
150 156
151   -#define SETTINGSFACTOR 2
  157 +#define SETTINGSFACTOR 3
152 158 #define STATUSFACTOR 2
153 159
154 160 //
... ...
... ... @@ -25,9 +25,6 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
25 25 // Accelerator
26 26 //
27 27
28   -IDR_MTTTYACCELERATOR ACCELERATORS
29   -BEGIN
30   -END
31 28
32 29
33 30 /////////////////////////////////////////////////////////////////////////////
... ... @@ -49,14 +46,15 @@ BEGIN
49 46 EDITTEXT IDC_OSVERSIONINFO,36,81,104,46,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY
50 47 END
51 48
52   -IDD_TOOLBARSETTINGS DIALOGEX 0, 0, 340, 14
  49 +IDD_TOOLBARSETTINGS DIALOGEX 0, 0, 232, 25
53 50 STYLE DS_ABSALIGN | DS_SETFONT | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_BORDER
54   -FONT 12, "??", 400, 0, 0x0
  51 +FONT 10, "??", 400, 0, 0x1
55 52 BEGIN
56 53 COMBOBOX IDC_PORTCOMBO,2,0,48,51,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
57   - PUSHBUTTON "连接夹具",IDC_BUTTON_CONNECT_UART,52,0,50,14
58   - PUSHBUTTON "软件路径",IDC_BUTTON2_SEC_BINFILE,109,0,50,14
59   - PUSHBUTTON "清除信息",IDC_BUTTON_CLEANINFO,275,0,50,14
  54 + PUSHBUTTON "连接夹具",IDC_BUTTON_CONNECT_UART,52,0,50,12
  55 + PUSHBUTTON "软件路径",IDC_BUTTON2_SEC_BINFILE,109,0,50,12
  56 + PUSHBUTTON "清除信息",IDC_BUTTON_CLEANINFO,176,0,50,12,NOT WS_VISIBLE
  57 + EDITTEXT IDC_STATIC_BINPATH,0,11,227,14,ES_AUTOHSCROLL | ES_READONLY
60 58 END
61 59
62 60 IDD_STATUSDIALOG DIALOGEX 0, 0, 392, 281
... ... @@ -84,13 +82,13 @@ IDI_APPICON4 ICON "MTTTY4.ICO"
84 82 // Menu
85 83 //
86 84
87   -IDR_MTTTYMENU MENU
88   -BEGIN
89   - POPUP "T&ransfer"
90   - BEGIN
91   - MENUITEM "&Receive File (Text)...", ID_TRANSFER_RECEIVEFILETEXT
92   - END
93   -END
  85 +//IDR_MTTTYMENU MENU
  86 +//BEGIN
  87 +// POPUP "T&ransfer"
  88 +// BEGIN
  89 +// MENUITEM "&Receive File (Text)...", ID_TRANSFER_RECEIVEFILETEXT
  90 +// END
  91 +//END
94 92
95 93
96 94 #ifdef APSTUDIO_INVOKED
... ... @@ -168,7 +166,8 @@ GUIDELINES DESIGNINFO
168 166 BEGIN
169 167 IDD_TOOLBARSETTINGS, DIALOG
170 168 BEGIN
171   - RIGHTMARGIN, 332
  169 + RIGHTMARGIN, 224
  170 + BOTTOMMARGIN, 1
172 171 END
173 172 END
174 173 #endif // APSTUDIO_INVOKED
... ...
... ... @@ -164,7 +164,7 @@
164 164 />
165 165 <Tool
166 166 Name="VCLinkerTool"
167   - AdditionalDependencies="winmm.lib comctl32.lib odbc32.lib odbccp32.lib"
  167 + AdditionalDependencies="winmm.lib comctl32.lib odbc32.lib odbccp32.lib shlwapi.lib"
168 168 OutputFile=".\WinDebug/BlueFlashTool.exe"
169 169 LinkIncremental="2"
170 170 SuppressStartupBanner="true"
... ...
... ... @@ -578,6 +578,7 @@ BOOL CALLBACK ToolbarProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
578 578 return;
579 579 }
580 580 CloseHandle(g_appdata.hFileOfEarphoneBin);
  581 + SetWindowText(GetDlgItem(hWndDlg, IDC_STATIC_BINPATH), g_appdata.szFileName);
581 582 SetWindowText(GetDlgItem(hWndDlg, IDC_BUTTON2_SEC_BINFILE), "下载软件");
582 583 }
583 584 if (g_appdata.DownloadReday == FALSE)
... ...
... ... @@ -232,7 +232,7 @@ void TransferFileTextStart(LPCTSTR lpstrFileName)
232 232 //
233 233 hMenu = GetMenu(ghwndMain);
234 234 MenuFlags = MF_DISABLED | MF_GRAYED;
235   - EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags);
  235 +// EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags);
236 236
237 237 //
238 238 // enable abort button and progress bar
... ... @@ -300,7 +300,7 @@ void TransferFileTextEnd()
300 300 //
301 301 hMenu = GetMenu(ghwndMain);
302 302 MenuFlags = MF_ENABLED;
303   - EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags);
  303 +// EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags);
304 304
305 305 //
306 306 // disable abort button and progress bar
... ... @@ -311,7 +311,7 @@ void TransferFileTextEnd()
311 311 //
312 312 // close the file
313 313 //
314   - CloseHandle(g_appdata.hFileOfEarphoneBin);
  314 + CloseHandle(g_appdata.hTempEarphoneBin);
315 315 }
316 316
317 317
... ... @@ -352,7 +352,7 @@ void ReceiveFileText(LPCTSTR lpstrFileName)
352 352 //
353 353 // disable transfer menu
354 354 //
355   - EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags);
  355 +// EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags);
356 356
357 357 //
358 358 // enable abort button and progress bar
... ... @@ -377,7 +377,7 @@ void ReceiveFileText(LPCTSTR lpstrFileName)
377 377 //
378 378 // enable transfer menu
379 379 //
380   - EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags);
  380 +// EnableMenuItem(hMenu, ID_TRANSFER_RECEIVEFILETEXT, MenuFlags);
381 381
382 382 //
383 383 // hide abort button and progress bar
... ... @@ -434,7 +434,9 @@ HANDLE CreateTheFile(LPCTSTR lpFName)
434 434 {
435 435 HANDLE hTemp;
436 436
437   - hTemp = CreateFile(lpFName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0,NULL);
  437 + hTemp = CreateFile(lpFName, GENERIC_WRITE|GENERIC_READ,
  438 + FILE_SHARE_READ|FILE_SHARE_WRITE,
  439 + NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,NULL);
438 440
439 441 if (hTemp == INVALID_HANDLE_VALUE)
440 442 ErrorReporter("CreateFile");
... ... @@ -656,15 +658,18 @@ const char dft_bdaddr[6] = { 0x00,0x00,0x00,0x3F,0x9f,0x94 };
656 658
657 659 char macid_sub[3] = {0x9e, 0x8b, 0x0};
658 660
659   -char macid_company[3] = {0x0, 0x1, 0x2};
  661 +//int macid_company = 1;
660 662
661 663
662 664
663 665 //char *fData,
664   -int fileCheck_fix_MACID(DWORD dataLen, const char macid_sub[3], const char macid_company[3])
  666 +int fileCheck_fix_MACID( const char macid_sub[3])
665 667 {
666 668 int i;
667 669 int ret = FILE_CHCK_SUCCESSFUL;
  670 + int macid_company = GetTickCount();
  671 + char tempBinFileName[256];
  672 + DWORD dwWritten;
668 673 char *p = g_appdata.BufEarphoneBin + MAC_ADDR_OFFSET + BAUDRATE_DET_DATA_LEN + HEADER_LEN;
669 674 //char *p = g_appdata.BufEarphoneBin + MAC_ADDR_OFFSET + 0xB00 + 0x20;
670 675 U32 *p1 = (U32 *)g_appdata.BufEarphoneBin;
... ... @@ -677,7 +682,8 @@ int fileCheck_fix_MACID(DWORD dataLen, const char macid_sub[3], const char macid
677 682 }
678 683
679 684 memcpy(baaddr, macid_sub, sizeof(macid_sub));
680   - memcpy(baaddr + (sizeof(macid_sub)), macid_company, sizeof(macid_company));
  685 + //macid_company = macid_company<<8;
  686 + memcpy(baaddr +3, &macid_company,3);
681 687
682 688 //memset(baaddr,0,sizeof(baaddr));
683 689 //app_lcd_device.display_char (" ", 0, 0);
... ... @@ -702,7 +708,7 @@ int fileCheck_fix_MACID(DWORD dataLen, const char macid_sub[3], const char macid
702 708 ret = WRONG_FILE_FORMAT;
703 709 //app_lcd_device.display_char("wrong file",0,0);
704 710 }
705   - else if (p_header->rx_total_bytes != (dataLen - BAUDRATE_DET_DATA_LEN - sizeof(BOOT_HEADER)))
  711 + else if (p_header->rx_total_bytes != (g_appdata.BinSizeFileEarphone - BAUDRATE_DET_DATA_LEN - sizeof(BOOT_HEADER)))
706 712 {
707 713 ret = WRONG_FILE_FORMAT;
708 714 //app_lcd_device.display_char("wrong file",0,0);
... ... @@ -727,32 +733,6 @@ int fileCheck_fix_MACID(DWORD dataLen, const char macid_sub[3], const char macid
727 733 }
728 734 //BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)
729 735 //LARGE_INTEGER ticks;
730   -#if 0//
731   - baaddr[0] = (unsigned char)(macid_0) & 0x000000ff;
732   - baaddr[1] = (unsigned char)(macid_1) & 0x000000ff;
733   - baaddr[2] = (unsigned char)(macid_2) & 0x000000ff;
734   -
735   - baaddr[3] = (unsigned char)(macid_3) & 0x000000ff;
736   - baaddr[4] = (unsigned char)(macid_4) & 0x000000ff;
737   - baaddr[5] = (unsigned char)(macid_5) & 0x000000ff;
738   - //#else
739   - U32 U32_ticks = read_ccount();
740   - if (U32_ticks)
741   - {
742   - //char szMessage[70];
743   - baaddr[0] = (unsigned char)(U32_ticks & 0x000000ff);
744   - baaddr[1] = (unsigned char)(U32_ticks >> 8) & 0x000000ff;
745   - baaddr[2] = (unsigned char)(U32_ticks >> 16) & 0x000000ff;
746   -
747   - //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]);
748   - //UpdateStatus(szMessage);
749   - }
750   - else
751   - {
752   - ret = READ_CPU_TICKS_ERR;
753   - app_lcd_device.display_char("read clk err", 0, 0);
754   - }
755   -#endif
756 736 // "Optek Bt\0\0"
757 737 *p++ = 'O';
758 738 *p++ = 'p';
... ... @@ -819,18 +799,6 @@ int fileCheck_fix_MACID(DWORD dataLen, const char macid_sub[3], const char macid
819 799 memcpy(p, baaddr, sizeof(baaddr));
820 800 p += 6;
821 801
822   - //a-a5
823   -/*
824   - buf = buf+0xfc00c;
825   - buf[0] = a;
826   - buf[1] = a1;
827   - buf[2] = a2;
828   - buf[3] = a3;
829   - buf[4] = a4;
830   - buf[5] = a5;
831   - buf = buf-0xfc00c;
832   - */
833   -
834 802 if (ret == FILE_CHCK_SUCCESSFUL)
835 803 {
836 804 int checksum = 0;
... ... @@ -844,6 +812,20 @@ int fileCheck_fix_MACID(DWORD dataLen, const char macid_sub[3], const char macid
844 812 p_header->rx_checksum = checksum;
845 813 //app_lcd_device.display_char("check ok",0,0);
846 814 }
  815 + memset(tempBinFileName,0,256);
  816 + sprintf(tempBinFileName,"%s\\%c%04x.bin",g_appdata.FolderPath,g_appdata.GroupHead,g_appdata.Groupid);
  817 + g_appdata.hTempEarphoneBin = CreateTheFile(tempBinFileName);
  818 + if (!WriteFile(g_appdata.hTempEarphoneBin, g_appdata.BufEarphoneBin, g_appdata.BinSizeFileEarphone, &dwWritten, NULL))
  819 + ErrorReporter("生成临时bin文件失败");
  820 + if (dwWritten != g_appdata.BinSizeFileEarphone)
  821 + ErrorReporter("生成临时bin文件失败");
  822 + FlushFileBuffers(g_appdata.hTempEarphoneBin);
  823 + Sleep(500);
  824 + CloseHandle(g_appdata.hTempEarphoneBin);
  825 +
  826 +
  827 + g_appdata.hTempEarphoneBin = OpenTheFile(g_appdata.szFileName);
  828 +
847 829 return ret;
848 830 }
849 831
... ... @@ -907,7 +889,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV)
907 889 /**********************check file*********************************/
908 890 //lpfileBuf = HeapAlloc(hDataHeap, 0, dwFileSize);
909 891 pRead = g_appdata.BufEarphoneBin;
910   - err = fileCheck_fix_MACID(g_appdata.BinSizeFileEarphone, macid_sub, macid_company);
  892 + err = fileCheck_fix_MACID(macid_sub);
911 893 if (err == WRONG_FILE_FORMAT)
912 894 {
913 895 ErrorReporter("wrong file format!");
... ... @@ -951,7 +933,7 @@ DWORD WINAPI TransferThreadProc(LPVOID lpV)
951 933 {
952 934 DWORD dwRead;
953 935 // read from file into new buffer
954   - if (ReadFile(hFileHandle, lpDataBuf, MAX_WRITE_BUFFER, &dwRead, NULL))
  936 + if (ReadFile(g_appdata.hTempEarphoneBin, lpDataBuf, MAX_WRITE_BUFFER, &dwRead, NULL))
955 937 {
956 938 WriterAddExistingNode(pWrite, WRITE_FILE, dwRead, 0, lpDataBuf, hDataHeap, hWndProgress);
957 939 if (dwRead != MAX_WRITE_BUFFER) break;
... ...
... ... @@ -51,6 +51,8 @@
51 51 #define IDC_BUTTON2_SEC_BINFILE 1086
52 52 #define IDC_BUTTON3 1087
53 53 #define IDC_BUTTON_CLEANINFO 1087
  54 +#define IDC_EDIT1 1089
  55 +#define IDC_STATIC_BINPATH 1089
54 56 #define IDC_ABORTBTN 1100
55 57 #define IDC_TRANSFERPROGRESS 1200
56 58 #define ID_TRANSFER_RECEIVEFILETEXT 40011
... ... @@ -62,7 +64,7 @@
62 64 #ifndef APSTUDIO_READONLY_SYMBOLS
63 65 #define _APS_NEXT_RESOURCE_VALUE 113
64 66 #define _APS_NEXT_COMMAND_VALUE 40021
65   -#define _APS_NEXT_CONTROL_VALUE 1088
  67 +#define _APS_NEXT_CONTROL_VALUE 1090
66 68 #define _APS_NEXT_SYMED_VALUE 104
67 69 #endif
68 70 #endif
... ...
Please register or login to post a comment