Commit c6eecaddd2663b91fa8575ce31ec6e9eaac54c41

Authored by xiemeng
1 parent 9eb79608

update 20210202

@@ -103,128 +103,107 @@ BOOL CBlueFlashToolApp::InitInstance() @@ -103,128 +103,107 @@ BOOL CBlueFlashToolApp::InitInstance()
103 // 加载程序默认配置 103 // 加载程序默认配置
104 bool CBlueFlashToolApp::LoadConfigs(void) 104 bool CBlueFlashToolApp::LoadConfigs(void)
105 { 105 {
  106 + CString strkeyname;
  107 + int loop1,loop2;
  108 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
106 g_AppMainData.if_same_sn = g_globalini.ReadBool("SN_Config","SN_same"); 109 g_AppMainData.if_same_sn = g_globalini.ReadBool("SN_Config","SN_same");
107 g_AppMainData.SN_head = g_globalini.ReadString("SN_Config","SN_head"); 110 g_AppMainData.SN_head = g_globalini.ReadString("SN_Config","SN_head");
108 g_AppMainData.SN_start = g_globalini.ReadInt("SN_Config","SN_start"); 111 g_AppMainData.SN_start = g_globalini.ReadInt("SN_Config","SN_start");
109 g_AppMainData.SN_end = g_globalini.ReadInt("SN_Config","SN_end"); 112 g_AppMainData.SN_end = g_globalini.ReadInt("SN_Config","SN_end");
110 g_AppMainData.SN_cur = g_globalini.ReadInt("SN_Config","SN_cur"); 113 g_AppMainData.SN_cur = g_globalini.ReadInt("SN_Config","SN_cur");
111 -  
112 g_AppMainData.if_same_btname = g_globalini.ReadBool("BT_name_Config","Btname_same"); 114 g_AppMainData.if_same_btname = g_globalini.ReadBool("BT_name_Config","Btname_same");
113 g_AppMainData.btname_head = g_globalini.ReadString("BT_name_Config","Btname_head"); 115 g_AppMainData.btname_head = g_globalini.ReadString("BT_name_Config","Btname_head");
114 g_AppMainData.btname_start = g_globalini.ReadInt("BT_name_Config","Btname_start"); 116 g_AppMainData.btname_start = g_globalini.ReadInt("BT_name_Config","Btname_start");
115 g_AppMainData.btname_end = g_globalini.ReadInt("BT_name_Config","Btname_end"); 117 g_AppMainData.btname_end = g_globalini.ReadInt("BT_name_Config","Btname_end");
116 g_AppMainData.btname_cur = g_globalini.ReadInt("BT_name_Config","Btname_cur"); 118 g_AppMainData.btname_cur = g_globalini.ReadInt("BT_name_Config","Btname_cur");
117 -  
118 -  
119 - 119 +#endif
120 g_AppMainData.com_config.aBandrate = g_globalini.ReadInt("UART_Config","波特率"); 120 g_AppMainData.com_config.aBandrate = g_globalini.ReadInt("UART_Config","波特率");
121 g_AppMainData.com_config.bcheck = g_globalini.ReadInt("UART_Config","校验位"); 121 g_AppMainData.com_config.bcheck = g_globalini.ReadInt("UART_Config","校验位");
122 g_AppMainData.com_config.cdatabit = g_globalini.ReadInt("UART_Config","数据位"); 122 g_AppMainData.com_config.cdatabit = g_globalini.ReadInt("UART_Config","数据位");
123 g_AppMainData.com_config.dstopbit = g_globalini.ReadInt("UART_Config","停止??"); 123 g_AppMainData.com_config.dstopbit = g_globalini.ReadInt("UART_Config","停止??");
124 g_AppMainData.com_config.estreambit = g_globalini.ReadInt("UART_Config","流控制"); 124 g_AppMainData.com_config.estreambit = g_globalini.ReadInt("UART_Config","流控制");
125 -  
126 - g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][0] = g_globalini.ReadInt("UART_Config","ear_port1");  
127 - g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][1] = g_globalini.ReadInt("UART_Config","ear_port2");  
128 - g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][2] = g_globalini.ReadInt("UART_Config","ear_port3");  
129 - g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][3] = g_globalini.ReadInt("UART_Config","ear_port4");  
130 - g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][4] = g_globalini.ReadInt("UART_Config","ear_port5");  
131 - g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][5] = g_globalini.ReadInt("UART_Config","ear_port6");  
132 - g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][6] = g_globalini.ReadInt("UART_Config","ear_port7");  
133 - g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][7] = g_globalini.ReadInt("UART_Config","ear_port8");  
134 - g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][8] = g_globalini.ReadInt("UART_Config","ear_port9");  
135 - g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][9] = g_globalini.ReadInt("UART_Config","ear_port10");  
136 - g_AppMainData.ary_myComPort[BLUE_TYPE_USB][0] = g_globalini.ReadInt("UART_Config","usb_port1");  
137 - g_AppMainData.ary_myComPort[BLUE_TYPE_USB][1] = g_globalini.ReadInt("UART_Config","usb_port2");  
138 - g_AppMainData.ary_myComPort[BLUE_TYPE_USB][2] = g_globalini.ReadInt("UART_Config","usb_port3");  
139 - g_AppMainData.ary_myComPort[BLUE_TYPE_USB][3] = g_globalini.ReadInt("UART_Config","usb_port4");  
140 - g_AppMainData.ary_myComPort[BLUE_TYPE_USB][4] = g_globalini.ReadInt("UART_Config","usb_port5");  
141 - g_AppMainData.ary_myComPort[BLUE_TYPE_USB][5] = g_globalini.ReadInt("UART_Config","usb_port6");  
142 - g_AppMainData.ary_myComPort[BLUE_TYPE_USB][6] = g_globalini.ReadInt("UART_Config","usb_port7");  
143 - g_AppMainData.ary_myComPort[BLUE_TYPE_USB][7] = g_globalini.ReadInt("UART_Config","usb_port8");  
144 - g_AppMainData.ary_myComPort[BLUE_TYPE_USB][8] = g_globalini.ReadInt("UART_Config","usb_port9");  
145 - g_AppMainData.ary_myComPort[BLUE_TYPE_USB][9] = g_globalini.ReadInt("UART_Config","usb_port10");  
146 - g_AppMainData.FilePathEar= g_globalini.ReadString("BinFilePath","EarBin");  
147 - g_AppMainData.FilePathUsb= g_globalini.ReadString("BinFilePath","UsbBin");  
148 -  
149 -  
150 -  
151 -  
152 - 125 + g_AppMainData.LastEarBin = g_globalini.ReadInt("Config","LastEarFile");
  126 + g_AppMainData.LastUsbBin = g_globalini.ReadInt("Config","LastUsbFile");
  127 + g_AppMainData.firstID_binfile = g_globalini.ReadInt("Config","FirstID_binFile");
  128 + g_AppMainData.lastID_binfile = g_globalini.ReadInt("Config","LastID_binFile");
  129 + if (g_AppMainData.firstID_binfile <0 || g_AppMainData.firstID_binfile > 65535)
  130 + g_AppMainData.firstID_binfile = 0;
  131 + if (g_AppMainData.lastID_binfile <0 || g_AppMainData.lastID_binfile > 65535)
  132 + g_AppMainData.lastID_binfile = 0;
153 133
154 134
  135 +
  136 + if (g_AppMainData.LastEarBin <1) g_AppMainData.LastEarBin = 1;
  137 + if (g_AppMainData.LastUsbBin <1) g_AppMainData.LastUsbBin = 1;
  138 + for (loop1 = 0;loop1<BLUE_TYPE_MAX;loop1++)
  139 + {
  140 + for (loop2 = 0;loop2<MAX_TOPWELL_DEVICE_NUM;loop2++)
  141 + {
  142 + if (loop1 == BLUE_TYPE_EAR)
  143 + strkeyname.Format("ear_port%d",loop2);
  144 + else
  145 + strkeyname.Format("usb_port%d",loop2);
  146 + g_AppMainData.ary_myComPort[loop1][loop2] = g_globalini.ReadInt("UART_Config",strkeyname);
  147 + if (g_AppMainData.ary_myComPort[loop1][loop2] > 255)
  148 + {
  149 + g_AppMainData.ary_myComPort[loop1][loop2] = 0;
  150 + }
  151 +
  152 + #ifdef __TOPWELL_EDIT_SN_ENABLE__
  153 + if (loop1 == BLUE_TYPE_EAR)
  154 + strkeyname.Format("earBin%d_path",loop2);
  155 + else
  156 + strkeyname.Format("usbBin%d_path",loop2);
  157 + g_AppMainData.FilePathEar= g_globalini.ReadString("BinFilePath",strkeyname);
  158 + #endif
  159 + }
  160 + }
155 return true; 161 return true;
156 } 162 }
157 163
158 bool CBlueFlashToolApp::SaveConfigs(void) 164 bool CBlueFlashToolApp::SaveConfigs(void)
159 { 165 {
160 - // g_AppMainData.if_same_sn = TRUE;  
161 - // strcpy(g_AppMainData.SN_head, "T");  
162 - // g_AppMainData.SN_start = 0;  
163 - // g_AppMainData.SN_end = 0;  
164 - // g_AppMainData.SN_cur = 0;  
165 - // g_AppMainData.com_config.aBandrate = 115200;  
166 - // g_AppMainData.com_config.bcheck = 0;  
167 - // g_AppMainData.com_config.cdatabit = 8;  
168 - // g_AppMainData.com_config.dstopbit=1;  
169 - // g_AppMainData.com_config.estreambit=0;  
170 - //  
171 - // for (int i = 0; i < 10; i++)  
172 - // {  
173 - // g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][i]=-1;  
174 - // g_AppMainData.ary_myComPort[BLUE_TYPE_USB][i]=-1;  
175 - // }  
176 - // //--------------------------------------------------------数据初始化 166 + CString strkeyname;
  167 + int loop1,loop2;
177 168
  169 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
178 g_globalini.WriteBool("SN_Config","SN_same",g_AppMainData.if_same_sn); 170 g_globalini.WriteBool("SN_Config","SN_same",g_AppMainData.if_same_sn);
179 g_globalini.WriteString("SN_Config","SN_head",g_AppMainData.SN_head); 171 g_globalini.WriteString("SN_Config","SN_head",g_AppMainData.SN_head);
180 g_globalini.WriteInt("SN_Config","SN_start",g_AppMainData.SN_start); 172 g_globalini.WriteInt("SN_Config","SN_start",g_AppMainData.SN_start);
181 g_globalini.WriteInt("SN_Config","SN_end",g_AppMainData.SN_end); 173 g_globalini.WriteInt("SN_Config","SN_end",g_AppMainData.SN_end);
182 g_globalini.WriteInt("SN_Config","SN_cur",g_AppMainData.SN_cur); 174 g_globalini.WriteInt("SN_Config","SN_cur",g_AppMainData.SN_cur);
183 -  
184 -  
185 g_globalini.WriteBool("BT_name_Config","Btname_same",g_AppMainData.if_same_btname); 175 g_globalini.WriteBool("BT_name_Config","Btname_same",g_AppMainData.if_same_btname);
186 g_globalini.WriteString("BT_name_Config","Btname_head",g_AppMainData.btname_head); 176 g_globalini.WriteString("BT_name_Config","Btname_head",g_AppMainData.btname_head);
187 g_globalini.WriteInt("BT_name_Config","Btname_start",g_AppMainData.btname_start); 177 g_globalini.WriteInt("BT_name_Config","Btname_start",g_AppMainData.btname_start);
188 g_globalini.WriteInt("BT_name_Config","Btname_end",g_AppMainData.btname_end); 178 g_globalini.WriteInt("BT_name_Config","Btname_end",g_AppMainData.btname_end);
189 g_globalini.WriteInt("BT_name_Config","Btname_cur",g_AppMainData.btname_cur); 179 g_globalini.WriteInt("BT_name_Config","Btname_cur",g_AppMainData.btname_cur);
190 -  
191 -  
192 -  
193 -  
194 - 180 +#endif
195 g_globalini.WriteInt("UART_Config","波特率",g_AppMainData.com_config.aBandrate); 181 g_globalini.WriteInt("UART_Config","波特率",g_AppMainData.com_config.aBandrate);
196 g_globalini.WriteInt("UART_Config","校验位",g_AppMainData.com_config.bcheck); 182 g_globalini.WriteInt("UART_Config","校验位",g_AppMainData.com_config.bcheck);
197 g_globalini.WriteInt("UART_Config","数据位",g_AppMainData.com_config.cdatabit); 183 g_globalini.WriteInt("UART_Config","数据位",g_AppMainData.com_config.cdatabit);
198 g_globalini.WriteInt("UART_Config","停止位",g_AppMainData.com_config.dstopbit); 184 g_globalini.WriteInt("UART_Config","停止位",g_AppMainData.com_config.dstopbit);
199 g_globalini.WriteInt("UART_Config","流控制",g_AppMainData.com_config.estreambit); 185 g_globalini.WriteInt("UART_Config","流控制",g_AppMainData.com_config.estreambit);
  186 + g_globalini.WriteInt("Config","LastEarFile",g_AppMainData.LastEarBin);
  187 + g_globalini.WriteInt("Config","LastUsbFile",g_AppMainData.LastUsbBin);
  188 + g_globalini.WriteInt("Config","FirstID_binFile",g_AppMainData.firstID_binfile);
  189 + g_globalini.WriteInt("Config","LastID_binFile",g_AppMainData.lastID_binfile);
200 190
201 - g_globalini.WriteInt("UART_Config","ear_port1",g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][0]);  
202 - g_globalini.WriteInt("UART_Config","ear_port2",g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][1]);  
203 - g_globalini.WriteInt("UART_Config","ear_port3",g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][2]);  
204 - g_globalini.WriteInt("UART_Config","ear_port4",g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][3]);  
205 - g_globalini.WriteInt("UART_Config","ear_port5",g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][4]);  
206 - g_globalini.WriteInt("UART_Config","ear_port6",g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][5]);  
207 - g_globalini.WriteInt("UART_Config","ear_port7",g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][6]);  
208 - g_globalini.WriteInt("UART_Config","ear_port8",g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][7]);  
209 - g_globalini.WriteInt("UART_Config","ear_port9",g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][8]);  
210 - g_globalini.WriteInt("UART_Config","ear_port10",g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][9]);  
211 - g_globalini.WriteInt("UART_Config","usb_port1",g_AppMainData.ary_myComPort[BLUE_TYPE_USB][0]);  
212 - g_globalini.WriteInt("UART_Config","usb_port2",g_AppMainData.ary_myComPort[BLUE_TYPE_USB][1]);  
213 - g_globalini.WriteInt("UART_Config","usb_port3",g_AppMainData.ary_myComPort[BLUE_TYPE_USB][2]);  
214 - g_globalini.WriteInt("UART_Config","usb_port4",g_AppMainData.ary_myComPort[BLUE_TYPE_USB][3]);  
215 - g_globalini.WriteInt("UART_Config","usb_port5",g_AppMainData.ary_myComPort[BLUE_TYPE_USB][4]);  
216 - g_globalini.WriteInt("UART_Config","usb_port6",g_AppMainData.ary_myComPort[BLUE_TYPE_USB][5]);  
217 - g_globalini.WriteInt("UART_Config","usb_port7",g_AppMainData.ary_myComPort[BLUE_TYPE_USB][6]);  
218 - g_globalini.WriteInt("UART_Config","usb_port8",g_AppMainData.ary_myComPort[BLUE_TYPE_USB][7]);  
219 - g_globalini.WriteInt("UART_Config","usb_port9",g_AppMainData.ary_myComPort[BLUE_TYPE_USB][8]);  
220 - g_globalini.WriteInt("UART_Config","usb_port10",g_AppMainData.ary_myComPort[BLUE_TYPE_USB][9]);  
221 191
  192 + for (loop1 = 0;loop1<BLUE_TYPE_MAX;loop1++)
  193 + {
  194 + for (loop2 = 0;loop2<MAX_TOPWELL_DEVICE_NUM;loop2++)
  195 + {
  196 + if (loop1 == BLUE_TYPE_EAR)
  197 + strkeyname.Format("ear_port%d",loop2);
  198 + else
  199 + strkeyname.Format("usb_port%d",loop2);
  200 + g_globalini.WriteInt("UART_Config",strkeyname,g_AppMainData.ary_myComPort[loop1][loop2]);
  201 + }
  202 + }
  203 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
222 g_globalini.WriteString("BinFilePath","EarBin",g_AppMainData.FilePathEar); 204 g_globalini.WriteString("BinFilePath","EarBin",g_AppMainData.FilePathEar);
223 g_globalini.WriteString("BinFilePath","UsbBin",g_AppMainData.FilePathUsb); 205 g_globalini.WriteString("BinFilePath","UsbBin",g_AppMainData.FilePathUsb);
224 -  
225 -  
226 -  
227 - 206 +#endif
228 return true; 207 return true;
229 } 208 }
230 209
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
24 24
25 25
26 26
27 - 27 +//#define __TOPWELL_EDIT_SN_ENABLE__
28 28
29 #define MAX_PATH 260 29 #define MAX_PATH 260
30 #define WM_UPDATEPOS WM_USER + 1000 30 #define WM_UPDATEPOS WM_USER + 1000
@@ -37,7 +37,7 @@ typedef enum @@ -37,7 +37,7 @@ typedef enum
37 BLUE_TYPE_USB, 37 BLUE_TYPE_USB,
38 BLUE_TYPE_MAX 38 BLUE_TYPE_MAX
39 }BLUE_DEVICE_TYPE; 39 }BLUE_DEVICE_TYPE;
40 - 40 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
41 typedef struct 41 typedef struct
42 { 42 {
43 char topwell_for_search[20]; 43 char topwell_for_search[20];
@@ -45,6 +45,7 @@ typedef struct @@ -45,6 +45,7 @@ typedef struct
45 char bt_name[64]; 45 char bt_name[64];
46 char optek_link_group[3]; 46 char optek_link_group[3];
47 }topwell_SN_write_struct; 47 }topwell_SN_write_struct;
  48 +#endif
48 49
49 50
50 51
@@ -60,8 +61,18 @@ typedef struct @@ -60,8 +61,18 @@ typedef struct
60 typedef struct 61 typedef struct
61 { 62 {
62 short ary_myComPort[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM]; 63 short ary_myComPort[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
  64 + #ifdef __TOPWELL_EDIT_SN_ENABLE__
  65 + CString FilePathUsb[MAX_TOPWELL_DEVICE_NUM];
  66 + CString FilePathEar[MAX_TOPWELL_DEVICE_NUM];
  67 + #else
  68 + int firstID_binfile;
  69 + int lastID_binfile;
  70 + int LastEarBin;
  71 + int LastUsbBin;
  72 + #endif
63 short int_myComPortDebug; 73 short int_myComPortDebug;
64 com_config_struct com_config; 74 com_config_struct com_config;
  75 + #ifdef __TOPWELL_EDIT_SN_ENABLE__
65 BOOL if_same_sn; 76 BOOL if_same_sn;
66 CString SN_head; 77 CString SN_head;
67 int SN_start; 78 int SN_start;
@@ -72,10 +83,7 @@ typedef struct @@ -72,10 +83,7 @@ typedef struct
72 int btname_start; 83 int btname_start;
73 int btname_end; 84 int btname_end;
74 int btname_cur; 85 int btname_cur;
75 -  
76 - int int_ResendTime;  
77 - CString FilePathUsb;  
78 - CString FilePathEar; 86 + #endif
79 }app_main_data_struct; 87 }app_main_data_struct;
80 88
81 extern app_main_data_struct g_AppMainData; 89 extern app_main_data_struct g_AppMainData;
@@ -180,6 +180,12 @@ BEGIN @@ -180,6 +180,12 @@ BEGIN
180 LTEXT "到",IDC_STATIC,69,106,9,12,SS_CENTERIMAGE 180 LTEXT "到",IDC_STATIC,69,106,9,12,SS_CENTERIMAGE
181 LTEXT "SN号前缀",IDC_STATIC,5,93,34,11,SS_CENTERIMAGE 181 LTEXT "SN号前缀",IDC_STATIC,5,93,34,11,SS_CENTERIMAGE
182 EDITTEXT IDC_EDIT_BTNAME_HEADER,43,93,61,12,ES_AUTOHSCROLL 182 EDITTEXT IDC_EDIT_BTNAME_HEADER,43,93,61,12,ES_AUTOHSCROLL
  183 + CONTROL "所有PCB下载相同软件",IDC_CHECK_FLASH_ONE_BIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,142,107,94,10
  184 + EDITTEXT IDC_EDIT_BIN_START,160,130,27,14,ES_AUTOHSCROLL
  185 + LTEXT "从",IDC_STATIC,141,130,11,14,SS_CENTERIMAGE
  186 + EDITTEXT IDC_EDIT_BIN_END,211,130,27,14,ES_AUTOHSCROLL
  187 + LTEXT "到",IDC_STATIC,197,130,10,14,SS_CENTERIMAGE
  188 + GROUPBOX "请指定ID范围",IDC_STATIC,137,119,121,31
183 END 189 END
184 190
185 191
@@ -112,8 +112,8 @@ @@ -112,8 +112,8 @@
112 </Configuration> 112 </Configuration>
113 <Configuration 113 <Configuration
114 Name="Debug|Win32" 114 Name="Debug|Win32"
115 - OutputDirectory=".\Debug"  
116 - IntermediateDirectory=".\Debug" 115 + OutputDirectory="$(SolutionDir)$(ConfigurationName)"
  116 + IntermediateDirectory="$(ConfigurationName)"
117 ConfigurationType="1" 117 ConfigurationType="1"
118 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" 118 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
119 UseOfMFC="2" 119 UseOfMFC="2"
@@ -30,13 +30,10 @@ CBlueFlashToolDlg::CBlueFlashToolDlg(CWnd* pParent /*=NULL*/) @@ -30,13 +30,10 @@ CBlueFlashToolDlg::CBlueFlashToolDlg(CWnd* pParent /*=NULL*/)
30 //}}AFX_DATA_INIT 30 //}}AFX_DATA_INIT
31 // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 31 // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
33 - for (int i=0;i<10;i++)  
34 - {  
35 - ifUartEnable[BLUE_TYPE_USB][i] = false;  
36 - ifUartEnable[BLUE_TYPE_EAR][i] = false;  
37 - } 33 + memset(ifUartEnable,0,BLUE_TYPE_MAX*MAX_TOPWELL_DEVICE_NUM);
38 memcpy(strSignalFlashReady,"\xFC\x4F\x70\x74\x65\x6B\x20\x52\x4F\x4D\x20\x62\x6F\x6F\x74\x00",16); 34 memcpy(strSignalFlashReady,"\xFC\x4F\x70\x74\x65\x6B\x20\x52\x4F\x4D\x20\x62\x6F\x6F\x74\x00",16);
39 memcpy(strSignalFlashing,"\x50\x72\x6F\x67\x72\x61\x6D\x6D\x69\x6E\x67\x3A\x00",13); 35 memcpy(strSignalFlashing,"\x50\x72\x6F\x67\x72\x61\x6D\x6D\x69\x6E\x67\x3A\x00",13);
  36 + mystrAppcurrDir = GetCurrPath();
40 } 37 }
41 38
42 void CBlueFlashToolDlg::DoDataExchange(CDataExchange* pDX) 39 void CBlueFlashToolDlg::DoDataExchange(CDataExchange* pDX)
@@ -159,6 +156,7 @@ BEGIN_MESSAGE_MAP(CBlueFlashToolDlg, CDialog) @@ -159,6 +156,7 @@ BEGIN_MESSAGE_MAP(CBlueFlashToolDlg, CDialog)
159 156
160 ON_WM_DESTROY() 157 ON_WM_DESTROY()
161 ON_BN_CLICKED(IDC_START_ALL, &CBlueFlashToolDlg::OnBnClickedStartAll) 158 ON_BN_CLICKED(IDC_START_ALL, &CBlueFlashToolDlg::OnBnClickedStartAll)
  159 + ON_BN_CLICKED(IDC_STOP_ALL, &CBlueFlashToolDlg::OnBnClickedStopAll)
162 END_MESSAGE_MAP() 160 END_MESSAGE_MAP()
163 161
164 ///////////////////////////////////////////////////////////////////////////// 162 /////////////////////////////////////////////////////////////////////////////
@@ -172,16 +170,18 @@ BOOL CBlueFlashToolDlg::OnInitDialog() @@ -172,16 +170,18 @@ BOOL CBlueFlashToolDlg::OnInitDialog()
172 RECT rect_comport[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM]; 170 RECT rect_comport[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
173 RECT rect_process_bar[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM]; 171 RECT rect_process_bar[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
174 RECT rect_start_button[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM]; 172 RECT rect_start_button[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
175 - RECT rect_SN_info[MAX_TOPWELL_DEVICE_NUM]; 173 + RECT rect_SN_info[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
176 RECT rect_this; 174 RECT rect_this;
177 CString m_strSettings; 175 CString m_strSettings;
178 176
179 CDialog::OnInitDialog(); 177 CDialog::OnInitDialog();
180 178
  179 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
181 mybufferForFile = new BYTE [1024*1024*2]; 180 mybufferForFile = new BYTE [1024*1024*2];
182 mybufferForFileUSB = new BYTE [1024*1024*2]; 181 mybufferForFileUSB = new BYTE [1024*1024*2];
183 LoadBin((int)BLUE_TYPE_EAR); 182 LoadBin((int)BLUE_TYPE_EAR);
184 LoadBin((int)BLUE_TYPE_USB); 183 LoadBin((int)BLUE_TYPE_USB);
  184 +#endif
185 GetWindowRect(&rect_this); 185 GetWindowRect(&rect_this);
186 myfontButton.CreateFont( 18,0,0,0,FW_NORMAL|FW_BOLD,FALSE,FALSE,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, 186 myfontButton.CreateFont( 18,0,0,0,FW_NORMAL|FW_BOLD,FALSE,FALSE,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
187 DEFAULT_PITCH | FF_MODERN,_T("宋体") ) ; 187 DEFAULT_PITCH | FF_MODERN,_T("宋体") ) ;
@@ -200,26 +200,32 @@ BOOL CBlueFlashToolDlg::OnInitDialog() @@ -200,26 +200,32 @@ BOOL CBlueFlashToolDlg::OnInitDialog()
200 { 200 {
201 for (loop2 = 0;loop2 <MAX_TOPWELL_DEVICE_NUM;loop2++) 201 for (loop2 = 0;loop2 <MAX_TOPWELL_DEVICE_NUM;loop2++)
202 { 202 {
203 - rect_pcb[loop1][loop2].left = 10+300*loop1;  
204 - rect_comport[loop1][loop2].left = 30+300*loop1;  
205 - rect_process_bar[loop1][loop2].left = 110+300*loop1;  
206 - rect_start_button[loop1][loop2].left = 230+300*loop1; 203 + rect_pcb[loop1][loop2].left = 10+400*loop1;
  204 + rect_comport[loop1][loop2].left = 30+400*loop1;
  205 + rect_process_bar[loop1][loop2].left = 110+400*loop1;
  206 + rect_start_button[loop1][loop2].left = 230+400*loop1;
  207 + rect_SN_info[loop1][loop2].left = 280+400*loop1;;
207 208
208 209
209 rect_pcb[loop1][loop2].right= rect_pcb[loop1][loop2].left+15; 210 rect_pcb[loop1][loop2].right= rect_pcb[loop1][loop2].left+15;
210 rect_comport[loop1][loop2].right = rect_comport[loop1][loop2].left+70; 211 rect_comport[loop1][loop2].right = rect_comport[loop1][loop2].left+70;
211 rect_process_bar[loop1][loop2].right = rect_process_bar[loop1][loop2].left+100; 212 rect_process_bar[loop1][loop2].right = rect_process_bar[loop1][loop2].left+100;
212 rect_start_button[loop1][loop2].right = rect_start_button[loop1][loop2].left+40; 213 rect_start_button[loop1][loop2].right = rect_start_button[loop1][loop2].left+40;
  214 + rect_SN_info[loop1][loop2].right = rect_SN_info[loop1][loop2].left+100;
213 215
214 rect_pcb[loop1][loop2].top = 30+25*loop2; 216 rect_pcb[loop1][loop2].top = 30+25*loop2;
215 rect_comport[loop1][loop2].top = 30+25*loop2; 217 rect_comport[loop1][loop2].top = 30+25*loop2;
216 rect_process_bar[loop1][loop2].top = 30+25*loop2; 218 rect_process_bar[loop1][loop2].top = 30+25*loop2;
217 rect_start_button[loop1][loop2].top = 30+25*loop2; 219 rect_start_button[loop1][loop2].top = 30+25*loop2;
  220 + rect_SN_info[loop1][loop2].top = 30+25*loop2;
218 221
219 rect_pcb[loop1][loop2].bottom= rect_pcb[loop1][loop2].top+20; 222 rect_pcb[loop1][loop2].bottom= rect_pcb[loop1][loop2].top+20;
220 rect_comport[loop1][loop2].bottom = rect_comport[loop1][loop2].top+200; 223 rect_comport[loop1][loop2].bottom = rect_comport[loop1][loop2].top+200;
221 rect_process_bar[loop1][loop2].bottom = rect_process_bar[loop1][loop2].top+20; 224 rect_process_bar[loop1][loop2].bottom = rect_process_bar[loop1][loop2].top+20;
222 rect_start_button[loop1][loop2].bottom = rect_start_button[loop1][loop2].top+20; 225 rect_start_button[loop1][loop2].bottom = rect_start_button[loop1][loop2].top+20;
  226 + rect_SN_info[loop1][loop2].bottom = rect_SN_info[loop1][loop2].top+20;
  227 +
  228 +
223 229
224 //PCB LED 230 //PCB LED
225 myctrlPcbState[loop1][loop2].Create(NULL, SS_BITMAP |WS_CHILD|WS_VISIBLE, 231 myctrlPcbState[loop1][loop2].Create(NULL, SS_BITMAP |WS_CHILD|WS_VISIBLE,
@@ -237,79 +243,67 @@ BOOL CBlueFlashToolDlg::OnInitDialog() @@ -237,79 +243,67 @@ BOOL CBlueFlashToolDlg::OnInitDialog()
237 // Create a push button. 243 // Create a push button.
238 myctrlStartButton[loop1][loop2].Create("开始",WS_VISIBLE|BS_PUSHBUTTON, 244 myctrlStartButton[loop1][loop2].Create("开始",WS_VISIBLE|BS_PUSHBUTTON,
239 rect_start_button[loop1][loop2], this, IDC_BUTTON_START0+loop1*MAX_TOPWELL_DEVICE_NUM+loop2); 245 rect_start_button[loop1][loop2], this, IDC_BUTTON_START0+loop1*MAX_TOPWELL_DEVICE_NUM+loop2);
240 - //myctrlStartButton[loop1][loop2].set  
241 - if (g_AppMainData.ary_myComPort[loop1][loop2]<2)  
242 - myctrlStartButton[loop1][loop2].EnableWindow(FALSE);  
243 - else  
244 - {  
245 - mycom[loop1][loop2].SetCommPort(g_AppMainData.ary_myComPort[loop1][loop2]); //选择com1  
246 - mycom[loop1][loop2].SetInputMode(1);  
247 - mycom[loop1][loop2].SetInputLen(512); //设置当前接收区数据长度为0  
248 - mycom[loop1][loop2].SetOutBufferSize(512);//设置当前接收区数据长度为0  
249 - mycom[loop1][loop2].SetSettings(m_strSettings); //波特率9600,无校验,8个数据位,1个停止位  
250 - myctrlStartButton[loop1][loop2].EnableWindow(TRUE);  
251 - }  
252 -  
253 - if (loop1 ==BLUE_TYPE_MAX-1 )  
254 - {  
255 - rect_SN_info[loop2].top = rect_start_button[loop1][loop2].top;  
256 - rect_SN_info[loop2].left = rect_start_button[loop1][loop2].right + 15;  
257 - rect_SN_info[loop2].right = rect_SN_info[loop2].left + 100;  
258 - rect_SN_info[loop2].bottom = rect_start_button[loop1][loop2].bottom;  
259 - myStaticSn[loop2].Create("SN号",WS_BORDER|WS_CHILD|WS_VISIBLE, rect_SN_info[loop2],  
260 - this, IDC_STATIC_GROUP0+loop2);  
261 - if (g_AppMainData.ary_myComPort[BLUE_TYPE_EAR][loop2]>2  
262 - ||g_AppMainData.ary_myComPort[BLUE_TYPE_USB][loop2]>2)  
263 - myStaticSn[loop2].EnableWindow(TRUE);  
264 - else  
265 - myStaticSn[loop2].EnableWindow(FALSE);  
266 - } 246 + myctrlStartButton[loop1][loop2].EnableWindow(FALSE);
  247 + myStaticSn[loop1][loop2].Create("文件名",WS_BORDER|WS_CHILD|WS_VISIBLE, rect_SN_info[loop1][loop2],
  248 + this, IDC_STATIC_GROUP0+loop1*MAX_TOPWELL_DEVICE_NUM+loop2);
267 } 249 }
268 } 250 }
269 //WM_DEVICECHANGE 251 //WM_DEVICECHANGE
270 252
271 GetDlgItem(IDC_STATIC_GROUP_DEBUG_INFO)->MoveWindow(0,rect_pcb[0][loop2-1].bottom+10, 253 GetDlgItem(IDC_STATIC_GROUP_DEBUG_INFO)->MoveWindow(0,rect_pcb[0][loop2-1].bottom+10,
272 - rect_start_button[loop1-1][loop2-1].right+250,310); 254 + rect_SN_info[loop1-1][loop2-1].right+250,310);
273 GetDlgItem(IDC_STATIC_GROUP_DEBUG_INFO)->SetWindowText("运行日志"); 255 GetDlgItem(IDC_STATIC_GROUP_DEBUG_INFO)->SetWindowText("运行日志");
274 mylistDebugInfo.MoveWindow(rect_pcb[0][loop2-1].left,rect_pcb[0][loop2-1].bottom+30, 256 mylistDebugInfo.MoveWindow(rect_pcb[0][loop2-1].left,rect_pcb[0][loop2-1].bottom+30,
275 - rect_start_button[loop1-1][loop2-1].right+230,300); 257 + rect_SN_info[loop1-1][loop2-1].right+230,300);
276 258
277 GetDlgItem(IDC_STATIC_GROUP_EAR)->MoveWindow(0,5, 259 GetDlgItem(IDC_STATIC_GROUP_EAR)->MoveWindow(0,5,
278 - rect_start_button[0][loop2-1].right+15,  
279 - rect_start_button[0][loop2-1].bottom+2); 260 + rect_SN_info[0][loop2-1].right+15,
  261 + rect_SN_info[0][loop2-1].bottom+2);
280 GetDlgItem(IDC_STATIC_GROUP_EAR)->SetWindowText("耳机下载"); 262 GetDlgItem(IDC_STATIC_GROUP_EAR)->SetWindowText("耳机下载");
281 GetDlgItem(IDC_STATIC_GROUP_USB)->MoveWindow(rect_pcb[loop1-1][0].left-10,5, 263 GetDlgItem(IDC_STATIC_GROUP_USB)->MoveWindow(rect_pcb[loop1-1][0].left-10,5,
282 - rect_start_button[0][loop2-1].right+10,  
283 - rect_start_button[0][loop2-1].bottom+2); 264 + rect_SN_info[0][loop2-1].right+10,
  265 + rect_SN_info[0][loop2-1].bottom+2);
284 GetDlgItem(IDC_STATIC_GROUP_USB)->SetWindowText("发射器下载"); 266 GetDlgItem(IDC_STATIC_GROUP_USB)->SetWindowText("发射器下载");
285 267
286 268
287 269
288 GetDlgItem(IDC_START_ALL)->MoveWindow( 270 GetDlgItem(IDC_START_ALL)->MoveWindow(
289 - rect_start_button[loop1-1][loop2-1].right+150,  
290 - rect_start_button[0][0].top+20, 271 + rect_SN_info[loop1-1][loop2-1].right+50,
  272 + rect_SN_info[0][0].top+20,
291 100,50); 273 100,50);
292 GetDlgItem(IDC_STOP_ALL)->MoveWindow( 274 GetDlgItem(IDC_STOP_ALL)->MoveWindow(
293 - rect_start_button[loop1-1][loop2-1].right+150,  
294 - rect_start_button[0][0].top+90, 275 + rect_SN_info[loop1-1][loop2-1].right+50,
  276 + rect_SN_info[0][0].top+90,
295 100,50); 277 100,50);
296 GetDlgItem(IDC_BUTTON_INIT_COMPORT)->MoveWindow( 278 GetDlgItem(IDC_BUTTON_INIT_COMPORT)->MoveWindow(
297 - rect_start_button[loop1-1][loop2-1].right+150,  
298 - rect_start_button[loop1-1][loop2-1].bottom-140, 279 + rect_SN_info[loop1-1][loop2-1].right+50,
  280 + rect_SN_info[loop1-1][loop2-1].bottom-140,
299 100,50); 281 100,50);
300 GetDlgItem(IDC_BUTTON_SETTING)->MoveWindow( 282 GetDlgItem(IDC_BUTTON_SETTING)->MoveWindow(
301 - rect_start_button[loop1-1][loop2-1].right+150,  
302 - rect_start_button[loop1-1][loop2-1].bottom-70, 283 + rect_SN_info[loop1-1][loop2-1].right+50,
  284 + rect_SN_info[loop1-1][loop2-1].bottom-70,
303 100,50); 285 100,50);
304 286
305 GetDlgItem(IDC_START_ALL)->SetFont(&myfontButton); 287 GetDlgItem(IDC_START_ALL)->SetFont(&myfontButton);
306 GetDlgItem(IDC_STOP_ALL)->SetFont(&myfontButton); 288 GetDlgItem(IDC_STOP_ALL)->SetFont(&myfontButton);
307 GetDlgItem(IDC_BUTTON_INIT_COMPORT)->SetFont(&myfontButton); 289 GetDlgItem(IDC_BUTTON_INIT_COMPORT)->SetFont(&myfontButton);
308 GetDlgItem(IDC_BUTTON_SETTING)->SetFont(&myfontButton); 290 GetDlgItem(IDC_BUTTON_SETTING)->SetFont(&myfontButton);
309 - rect_this.right = rect_this.left + rect_start_button[loop1-1][loop2-1].right+260; 291 + rect_this.right = rect_this.left + rect_SN_info[loop1-1][loop2-1].right+260;
310 rect_this.bottom = rect_this.top + rect_pcb[0][loop2-1].bottom+350; 292 rect_this.bottom = rect_this.top + rect_pcb[0][loop2-1].bottom+350;
311 MoveWindow(&rect_this); 293 MoveWindow(&rect_this);
312 294
  295 + myAryFlashSuc.RemoveAll();
  296 + if (g_AppMainData.firstID_binfile == g_AppMainData.lastID_binfile)
  297 + {
  298 + for (loop1 = 0; loop1 < 30000+1; loop1++)
  299 + myAryFlashFail.Add(0);
  300 + }
  301 + else
  302 + {
  303 + for (loop1 = g_AppMainData.firstID_binfile; loop1 < g_AppMainData.lastID_binfile+1; loop1++)
  304 + myAryFlashFail.Add(loop1);
  305 + }
  306 +
313 307
314 308
315 309
@@ -360,9 +354,10 @@ void CBlueFlashToolDlg::OnButtonSetting() @@ -360,9 +354,10 @@ void CBlueFlashToolDlg::OnButtonSetting()
360 { 354 {
361 CSysConfig dlg; 355 CSysConfig dlg;
362 dlg.DoModal(); 356 dlg.DoModal();
  357 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
363 LoadBin((int)BLUE_TYPE_EAR); 358 LoadBin((int)BLUE_TYPE_EAR);
364 LoadBin((int)BLUE_TYPE_USB); 359 LoadBin((int)BLUE_TYPE_USB);
365 - 360 +#endif
366 UpdateGroupsCaptions(); 361 UpdateGroupsCaptions();
367 362
368 } 363 }
@@ -371,7 +366,8 @@ void CBlueFlashToolDlg::UpdateGroupsCaptions() @@ -371,7 +366,8 @@ void CBlueFlashToolDlg::UpdateGroupsCaptions()
371 { 366 {
372 CString strCaptionStatics; 367 CString strCaptionStatics;
373 int loop1 = 0,loop2 = 0; 368 int loop1 = 0,loop2 = 0;
374 - int SN_readwrite = g_AppMainData.SN_cur; 369 + int binEarFileindex =0;
  370 + //int binUsbFileindex = g_AppMainData.LastUsbBin;
375 int sumPort = 0,sumForSn = 0; 371 int sumPort = 0,sumForSn = 0;
376 CButton * pbutton; 372 CButton * pbutton;
377 373
@@ -380,25 +376,23 @@ void CBlueFlashToolDlg::UpdateGroupsCaptions() @@ -380,25 +376,23 @@ void CBlueFlashToolDlg::UpdateGroupsCaptions()
380 sumForSn = 0; 376 sumForSn = 0;
381 for (loop1 = 0; loop1 < BLUE_TYPE_MAX; loop1++) 377 for (loop1 = 0; loop1 < BLUE_TYPE_MAX; loop1++)
382 { 378 {
383 - sumForSn+=g_AppMainData.ary_myComPort[loop1][loop2];  
384 - if (g_AppMainData.ary_myComPort[loop1][loop2] >1) 379 + //if (g_AppMainData.ary_myComPort[loop1][loop2] >1)
  380 + if (ifUartEnable[loop1][loop2])
  381 + {
  382 + if (BLUE_TYPE_EAR== loop1)
  383 + strCaptionStatics.Format("RX_%04d.bin",myAryFlashFail.GetAt(binEarFileindex));
  384 + else
  385 + strCaptionStatics.Format("TX_%04d.bin",myAryFlashFail.GetAt(binEarFileindex));
  386 + myStaticSn[loop1][loop2].SetWindowText(strCaptionStatics);
385 myctrlStartButton[loop1][loop2].EnableWindow(TRUE); 387 myctrlStartButton[loop1][loop2].EnableWindow(TRUE);
  388 + }
386 else 389 else
  390 + {
  391 + myStaticSn[loop1][loop2].SetWindowText("无文件");
387 myctrlStartButton[loop1][loop2].EnableWindow(FALSE); 392 myctrlStartButton[loop1][loop2].EnableWindow(FALSE);
388 - sumPort+= g_AppMainData.ary_myComPort[loop1][loop2];  
389 - }  
390 - if (sumForSn)  
391 - {  
392 - myStaticSn[loop2].EnableWindow(TRUE);  
393 - mySN_readwrite[loop2] = SN_readwrite++;  
394 - strCaptionStatics.Format("%s%04x", g_AppMainData.SN_head, mySN_readwrite[loop2]);  
395 - myStaticSn[loop2].SetWindowText(strCaptionStatics);  
396 - }  
397 - else  
398 - {  
399 - myStaticSn[loop2].EnableWindow(FALSE);  
400 - mySN_readwrite[loop2] = -1;  
401 - myStaticSn[loop2].SetWindowText("不可用"); 393 + }
  394 +
  395 +
402 } 396 }
403 } 397 }
404 GetDlgItem(IDC_START_ALL)->EnableWindow(sumPort> 0 ? TRUE: FALSE); 398 GetDlgItem(IDC_START_ALL)->EnableWindow(sumPort> 0 ? TRUE: FALSE);
@@ -419,12 +413,29 @@ void CBlueFlashToolDlg::OnCommMscommDebug() @@ -419,12 +413,29 @@ void CBlueFlashToolDlg::OnCommMscommDebug()
419 void CBlueFlashToolDlg::OnBnClickedButtonInitComport() 413 void CBlueFlashToolDlg::OnBnClickedButtonInitComport()
420 { 414 {
421 int loop1 = 0, loop2 = 0; 415 int loop1 = 0, loop2 = 0;
422 - for (loop1 = 0; loop1 < BLUE_TYPE_MAX; loop1++) 416 + CString strButtonText;
  417 + GetDlgItem(IDC_BUTTON_INIT_COMPORT)->GetWindowText(strButtonText);
  418 + if (strButtonText == "连接夹具")
423 { 419 {
424 - for (loop2 = 0; loop2 < MAX_TOPWELL_DEVICE_NUM; loop2++) 420 + for (loop1 = 0; loop1 < BLUE_TYPE_MAX; loop1++)
425 { 421 {
426 - OpenComport(loop1, loop2); 422 + for (loop2 = 0; loop2 < MAX_TOPWELL_DEVICE_NUM; loop2++)
  423 + {
  424 + OpenComport(loop1, loop2);
  425 + }
427 } 426 }
  427 + GetDlgItem(IDC_BUTTON_INIT_COMPORT)->SetWindowText("断开夹具");
  428 + }
  429 + else
  430 + {
  431 + for (loop1 = 0; loop1 < BLUE_TYPE_MAX; loop1++)
  432 + {
  433 + for (loop2 = 0; loop2 < MAX_TOPWELL_DEVICE_NUM; loop2++)
  434 + {
  435 + CloseComport(loop1, loop2);
  436 + }
  437 + }
  438 + GetDlgItem(IDC_BUTTON_INIT_COMPORT)->SetWindowText("连接夹具");
428 } 439 }
429 UpdateGroupsCaptions(); 440 UpdateGroupsCaptions();
430 } 441 }
@@ -434,7 +445,9 @@ void CBlueFlashToolDlg::OnBnClickedButtonInitComport() @@ -434,7 +445,9 @@ void CBlueFlashToolDlg::OnBnClickedButtonInitComport()
434 void CBlueFlashToolDlg::OnDestroy() 445 void CBlueFlashToolDlg::OnDestroy()
435 { 446 {
436 CDialog::OnDestroy(); 447 CDialog::OnDestroy();
  448 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
437 delete mybufferForFile; 449 delete mybufferForFile;
  450 +#endif
438 g_pmainapp->SaveConfigs(); 451 g_pmainapp->SaveConfigs();
439 } 452 }
440 453
@@ -445,7 +458,7 @@ bool CBlueFlashToolDlg::OpenComport(int earOrUsb, int index) @@ -445,7 +458,7 @@ bool CBlueFlashToolDlg::OpenComport(int earOrUsb, int index)
445 CString m_strSettings; 458 CString m_strSettings;
446 int comopen_port; 459 int comopen_port;
447 //CMSComm *pctrlComToOpen = pctrlMSComm[earOrUsb][index]; 460 //CMSComm *pctrlComToOpen = pctrlMSComm[earOrUsb][index];
448 - //m_strSettings.Format("%d,n,8,1", g_AppMainData.com_config.aBandrate); 461 + m_strSettings.Format("%d,n,8,1", g_AppMainData.com_config.aBandrate);
449 comopen_port =g_AppMainData.ary_myComPort[earOrUsb][index] ; 462 comopen_port =g_AppMainData.ary_myComPort[earOrUsb][index] ;
450 if (comopen_port<2) 463 if (comopen_port<2)
451 { 464 {
@@ -467,6 +480,13 @@ bool CBlueFlashToolDlg::OpenComport(int earOrUsb, int index) @@ -467,6 +480,13 @@ bool CBlueFlashToolDlg::OpenComport(int earOrUsb, int index)
467 return TRUE; 480 return TRUE;
468 } 481 }
469 } 482 }
  483 + mycom[earOrUsb][index].SetCommPort(g_AppMainData.ary_myComPort[earOrUsb][index]); //选择com1
  484 + mycom[earOrUsb][index].SetInputMode(1);
  485 + mycom[earOrUsb][index].SetInputLen(512); //设置当前接收区数据长度为0
  486 + mycom[earOrUsb][index].SetOutBufferSize(512);//设置当前接收区数据长度为0
  487 + mycom[earOrUsb][index].SetSettings(m_strSettings); //波特率9600,无校验,8个数据位,1个停止位
  488 +
  489 +
470 if (!mycom[earOrUsb][index].GetPortOpen()) 490 if (!mycom[earOrUsb][index].GetPortOpen())
471 { 491 {
472 try 492 try
@@ -492,6 +512,33 @@ bool CBlueFlashToolDlg::OpenComport(int earOrUsb, int index) @@ -492,6 +512,33 @@ bool CBlueFlashToolDlg::OpenComport(int earOrUsb, int index)
492 return true; 512 return true;
493 } 513 }
494 514
  515 +
  516 +
  517 +// 打开COM口,
  518 +bool CBlueFlashToolDlg::CloseComport(int earOrUsb, int index)
  519 +{
  520 + int loop = 0;
  521 + CString m_strSettings;
  522 + int comopen_port;
  523 + comopen_port =g_AppMainData.ary_myComPort[earOrUsb][index] ;
  524 + if (comopen_port<2) return false;
  525 + try
  526 + {
  527 + if (mycom[earOrUsb][index].GetPortOpen())
  528 + mycom[earOrUsb][index].SetPortOpen(FALSE);
  529 + ifUartEnable[earOrUsb][index] = false;
  530 + }
  531 + catch (CException* e)
  532 + {
  533 + e->ReportError();
  534 + return FALSE;
  535 + }
  536 + return true;
  537 +}
  538 +
  539 +
  540 +
  541 +
495 int CBlueFlashToolDlg::DBG_print(const char * strMsg, ...) 542 int CBlueFlashToolDlg::DBG_print(const char * strMsg, ...)
496 { 543 {
497 int var_tickcount = 0; 544 int var_tickcount = 0;
@@ -533,9 +580,9 @@ void CBlueFlashToolDlg::OnCommMscomm1(UINT nID) @@ -533,9 +580,9 @@ void CBlueFlashToolDlg::OnCommMscomm1(UINT nID)
533 aDeviceType = BLUE_TYPE_USB; 580 aDeviceType = BLUE_TYPE_USB;
534 aIndex = nID - IDC_MSCOMM11; 581 aIndex = nID - IDC_MSCOMM11;
535 } 582 }
536 - if (pctrlMSComm[aDeviceType][aIndex]->GetCommEvent() == 2) //事件值为2表示接收缓冲区内有字符 583 + if (mycom[aDeviceType][aIndex].GetCommEvent() == 2) //事件值为2表示接收缓冲区内有字符
537 { 584 {
538 - variant_inp = pctrlMSComm[aDeviceType][aIndex]->GetInput(); //读缓冲区 585 + variant_inp = mycom[aDeviceType][aIndex].GetInput(); //读缓冲区
539 safearray_inp = variant_inp; //VARIANT型变量转换为ColeSafeArray型变量 586 safearray_inp = variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
540 len = safearray_inp.GetOneDimSize(); //得到有效数据长度 587 len = safearray_inp.GetOneDimSize(); //得到有效数据长度
541 for (k = 0; k < len; k++) 588 for (k = 0; k < len; k++)
@@ -543,7 +590,12 @@ void CBlueFlashToolDlg::OnCommMscomm1(UINT nID) @@ -543,7 +590,12 @@ void CBlueFlashToolDlg::OnCommMscomm1(UINT nID)
543 if(strstr((char *)rxdata, strSignalFlashReady) == NULL) 590 if(strstr((char *)rxdata, strSignalFlashReady) == NULL)
544 myctrlPcbState[aDeviceType][aIndex].SetBitmap(myBitmapWait); 591 myctrlPcbState[aDeviceType][aIndex].SetBitmap(myBitmapWait);
545 else 592 else
  593 + {
546 myctrlPcbState[aDeviceType][aIndex].SetBitmap(myBitmapReady); 594 myctrlPcbState[aDeviceType][aIndex].SetBitmap(myBitmapReady);
  595 + mytickcount[aDeviceType][aIndex][0] = GetTickCount();
  596 + if(myThreadData[aDeviceType][aIndex].StartThread)
  597 + myThreadData[aDeviceType][aIndex].m_hThread = AfxBeginThread(BlueFlashThreadProc, &myThreadData[aDeviceType][aIndex]);
  598 + }
547 if (strstr((char *)rxdata,strSignalFlashing) != NULL) 599 if (strstr((char *)rxdata,strSignalFlashing) != NULL)
548 { 600 {
549 strncpy(flash_process,(char *)(rxdata+12),3); 601 strncpy(flash_process,(char *)(rxdata+12),3);
@@ -568,15 +620,27 @@ UINT BlueFlashThreadProc(LPVOID lParam) @@ -568,15 +620,27 @@ UINT BlueFlashThreadProc(LPVOID lParam)
568 620
569 621
570 622
571 - if(lParam == NULL) return -1; //如果线程参数位空, 直接退出 623 + if(lParam == NULL)
  624 + {
  625 + pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("开始");
  626 + pThreadData->pDlg->DeletePCB(aDeviceType,aIndex);
  627 + return -1; //如果线程参数位空, 直接退出
  628 + }
572 aDeviceType = (BLUE_DEVICE_TYPE)pThreadData->blue_device_type; 629 aDeviceType = (BLUE_DEVICE_TYPE)pThreadData->blue_device_type;
573 aIndex = pThreadData->nIndex; 630 aIndex = pThreadData->nIndex;
574 pctrlMSComm = pThreadData->pctrlMSComm; 631 pctrlMSComm = pThreadData->pctrlMSComm;
575 - if (pctrlMSComm == NULL) return -1; 632 + if (!pctrlMSComm)
  633 + {
  634 + pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("开始");
  635 + pThreadData->pDlg->DeletePCB(aDeviceType,aIndex);
  636 + return -1; //如果线程参数位空, 直接退出
  637 + }
576 638
577 if (!IsExistFile(pThreadData->Filename)) 639 if (!IsExistFile(pThreadData->Filename))
578 { 640 {
579 pThreadData->pDlg->DBG_print("[%d]文件不存在, 请重新设定软件路径",__LINE__); 641 pThreadData->pDlg->DBG_print("[%d]文件不存在, 请重新设定软件路径",__LINE__);
  642 + pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("开始");
  643 + pThreadData->pDlg->DeletePCB(aDeviceType,aIndex);
580 return -1; 644 return -1;
581 } 645 }
582 pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("停止"); 646 pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("停止");
@@ -590,11 +654,12 @@ UINT BlueFlashThreadProc(LPVOID lParam) @@ -590,11 +654,12 @@ UINT BlueFlashThreadProc(LPVOID lParam)
590 654
591 for(loop=0;loop<numParts;loop++) 655 for(loop=0;loop<numParts;loop++)
592 { 656 {
593 - if (pThreadData->StopThread) 657 + if (pThreadData->StartThread == false)
594 {// 检查是否有停止指令 658 {// 检查是否有停止指令
595 MyFile1.Close(); 659 MyFile1.Close();
596 ByteArray_512.RemoveAll(); 660 ByteArray_512.RemoveAll();
597 pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("开始"); 661 pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("开始");
  662 + pThreadData->pDlg->DeletePCB(aDeviceType,aIndex);
598 return 0; 663 return 0;
599 } 664 }
600 665
@@ -605,7 +670,8 @@ UINT BlueFlashThreadProc(LPVOID lParam) @@ -605,7 +670,8 @@ UINT BlueFlashThreadProc(LPVOID lParam)
605 ByteArray_512.SetAt(i, ByteBuf_512[i]); //把buf的1k数据转化为十六进制到array中,用于串口发送 670 ByteArray_512.SetAt(i, ByteBuf_512[i]); //把buf的1k数据转化为十六进制到array中,用于串口发送
606 pctrlMSComm->SetOutput((COleVariant) ByteArray_512); //发送 671 pctrlMSComm->SetOutput((COleVariant) ByteArray_512); //发送
607 Sleep (2); //等待接收端接收 672 Sleep (2); //等待接收端接收
608 - ::SendMessage(pThreadData->pDlg->m_hWnd,WM_UPDATEPOS,pThreadData->blue_device_type*10+pThreadData->nIndex,loop*100/numParts); 673 + ::SendMessage(pThreadData->pDlg->m_hWnd,WM_UPDATEPOS,pThreadData->blue_device_type<<16|pThreadData->nIndex,loop*100/numParts);
  674 + if(!(loop&0x7f)) pThreadData->pDlg->DBG_print("线路 %d.%d下载中%d/%d",aDeviceType+1,aIndex+1,loop,numParts);
609 } 675 }
610 if (Partsremain>0) 676 if (Partsremain>0)
611 { 677 {
@@ -617,11 +683,15 @@ UINT BlueFlashThreadProc(LPVOID lParam) @@ -617,11 +683,15 @@ UINT BlueFlashThreadProc(LPVOID lParam)
617 pctrlMSComm->SetOutput((COleVariant) ByteArray_512); //发送 683 pctrlMSComm->SetOutput((COleVariant) ByteArray_512); //发送
618 } 684 }
619 Sleep(1000); //等待接收端写30M数据到文件中 685 Sleep(1000); //等待接收端写30M数据到文件中
620 - ::SendMessage(pThreadData->pDlg->m_hWnd,WM_UPDATEPOS,pThreadData->blue_device_type*10+pThreadData->nIndex,100); 686 + ::SendMessage(pThreadData->pDlg->m_hWnd,WM_UPDATEPOS,pThreadData->blue_device_type<<16|pThreadData->nIndex,100);
621 //任务结束, 清理现场 687 //任务结束, 清理现场
622 MyFile1.Close(); 688 MyFile1.Close();
623 ByteArray_512.RemoveAll(); 689 ByteArray_512.RemoveAll();
  690 +
  691 + //pThreadData->pDlg->DBG_print("线路%d, %d 下载完成!!!",aDeviceType+1,aIndex+1);
  692 + pThreadData->pDlg->calcTImeWhenFinished(aDeviceType,aIndex);
624 pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("开始"); 693 pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("开始");
  694 + pThreadData->pDlg->DeletePCB(aDeviceType,aIndex);
625 return 0; 695 return 0;
626 } 696 }
627 697
@@ -726,6 +796,15 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam @@ -726,6 +796,15 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam
726 { 796 {
727 switch (message) 797 switch (message)
728 { 798 {
  799 + case WM_UPDATEPOS:
  800 + {
  801 + int colorstep = (255/100)*lParam;
  802 + int device_type = HIWORD(wParam);
  803 + int device_index = LOWORD(wParam);
  804 + myctrlProcess[device_type][device_index].SetPos(lParam);
  805 + myctrlProcess[device_type][device_index].SendMessage(PBM_SETBARCOLOR, 0, RGB(0, colorstep, 255-colorstep));//背景色为蓝色
  806 + }
  807 + break;
729 case WM_DEVICECHANGE: 808 case WM_DEVICECHANGE:
730 { 809 {
731 DEV_BROADCAST_HDR *pdevices_info = (DEV_BROADCAST_HDR *)lParam; 810 DEV_BROADCAST_HDR *pdevices_info = (DEV_BROADCAST_HDR *)lParam;
@@ -767,7 +846,10 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam @@ -767,7 +846,10 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam
767 device_index = HIBYTE(LOWORD(itemdataCombo)); 846 device_index = HIBYTE(LOWORD(itemdataCombo));
768 g_AppMainData.ary_myComPort[device_type][device_index] = LOBYTE(LOWORD(itemdataCombo));; 847 g_AppMainData.ary_myComPort[device_type][device_index] = LOBYTE(LOWORD(itemdataCombo));;
769 if (g_AppMainData.ary_myComPort[device_type][device_index] == 1) 848 if (g_AppMainData.ary_myComPort[device_type][device_index] == 1)
  849 + {
  850 + DBG_print("COM1不可用!");
770 g_AppMainData.ary_myComPort[device_type][device_index] = 0; 851 g_AppMainData.ary_myComPort[device_type][device_index] = 0;
  852 + }
771 } 853 }
772 UpdateGroupsCaptions(); 854 UpdateGroupsCaptions();
773 } 855 }
@@ -784,18 +866,15 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam @@ -784,18 +866,15 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam
784 if (!OpenComport(device_type, device_index)) 866 if (!OpenComport(device_type, device_index))
785 return 0; 867 return 0;
786 } 868 }
  869 + #ifdef __TOPWELL_EDIT_SN_ENABLE__
787 if (SaveBin(device_type,device_index) == false) 870 if (SaveBin(device_type,device_index) == false)
788 { 871 {
789 DBG_print("生成文件失败"); 872 DBG_print("生成文件失败");
790 return 0; 873 return 0;
791 } 874 }
792 - myStaticSn[device_index].GetWindowText(strtmsg);  
793 -  
794 - if (device_type == BLUE_TYPE_EAR)  
795 - myThreadData[device_type][device_index].Filename.Format("%sEar%04x.bin",GetCurrPath(),mySN_readwrite[device_index]);  
796 - else  
797 - myThreadData[device_type][device_index].Filename.Format("%sDongle%04x.bin",GetCurrPath(),mySN_readwrite[device_index]);  
798 - 875 + #endif
  876 + myStaticSn[device_type][device_index].GetWindowText(strtmsg);
  877 + myThreadData[device_type][device_index].Filename = mystrAppcurrDir+"Bins\\ear\\"+strtmsg;
799 GetDlgItem(currID)->GetWindowText(strButonText); 878 GetDlgItem(currID)->GetWindowText(strButonText);
800 if (strButonText == "开始") 879 if (strButonText == "开始")
801 { 880 {
@@ -804,16 +883,19 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam @@ -804,16 +883,19 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam
804 myThreadData[device_type][device_index].blue_device_type = (BYTE) 883 myThreadData[device_type][device_index].blue_device_type = (BYTE)
805 device_type; 884 device_type;
806 myThreadData[device_type][device_index].nIndex = device_index; 885 myThreadData[device_type][device_index].nIndex = device_index;
807 - myThreadData[device_type][device_index].StopThread = false;  
808 - myThreadData[device_type][device_index].pctrlMSComm = pctrlMSComm[device_type][device_index];  
809 - myThreadData[device_type][device_index].m_hThread = AfxBeginThread(BlueFlashThreadProc, &myThreadData[device_type][device_index]); 886 + myThreadData[device_type][device_index].StartThread = true;
  887 + myThreadData[device_type][device_index].pctrlMSComm = &mycom[device_type][device_index];
  888 + //myThreadData[device_type][device_index].m_hThread = AfxBeginThread(BlueFlashThreadProc, &myThreadData[device_type][device_index]);
  889 + GetDlgItem(currID)->SetWindowText("停止");
810 } 890 }
811 else if (strButonText == "停止") 891 else if (strButonText == "停止")
812 { 892 {
813 - //DWORD threadExitcode;  
814 - //GetExitCodeThread(m_hThread[aDeviceType][aIndex], &threadExitcode);  
815 - //if (threadExitcode == STILL_ACTIVE) TerminateThread(m_hThread[aDeviceType][aIndex], 0);  
816 - myThreadData[device_type][device_index].StopThread = true; 893 + DWORD threadExitcode;
  894 + //TerminateThread(m_hThread[aDeviceType][aIndex], 0);
  895 + myThreadData[device_type][device_index].StartThread = false;
  896 + GetExitCodeThread(myThreadData[device_type][device_index].m_hThread, &threadExitcode);
  897 + if (threadExitcode != STILL_ACTIVE)
  898 + GetDlgItem(currID)->SetWindowText("开始");
817 } 899 }
818 } 900 }
819 } 901 }
@@ -828,6 +910,7 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam @@ -828,6 +910,7 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam
828 void CBlueFlashToolDlg::OnBnClickedStartAll() 910 void CBlueFlashToolDlg::OnBnClickedStartAll()
829 { 911 {
830 int loop1,loop2; 912 int loop1,loop2;
  913 + CString strtmsg;
831 for (loop1 = 0; loop1 < BLUE_TYPE_MAX; loop1++) 914 for (loop1 = 0; loop1 < BLUE_TYPE_MAX; loop1++)
832 { 915 {
833 for (loop2 = 0; loop2 < MAX_TOPWELL_DEVICE_NUM; loop2++) 916 for (loop2 = 0; loop2 < MAX_TOPWELL_DEVICE_NUM; loop2++)
@@ -835,9 +918,15 @@ void CBlueFlashToolDlg::OnBnClickedStartAll() @@ -835,9 +918,15 @@ void CBlueFlashToolDlg::OnBnClickedStartAll()
835 myThreadData[loop1][loop2].pDlg = this; 918 myThreadData[loop1][loop2].pDlg = this;
836 myThreadData[loop1][loop2].blue_device_type = (BYTE)loop1; 919 myThreadData[loop1][loop2].blue_device_type = (BYTE)loop1;
837 myThreadData[loop1][loop2].nIndex = loop2; 920 myThreadData[loop1][loop2].nIndex = loop2;
838 - myThreadData[loop1][loop2].StopThread = false;  
839 - myThreadData[loop1][loop2].pctrlMSComm = pctrlMSComm[loop1][loop2];  
840 - myThreadData[loop1][loop2].m_hThread = AfxBeginThread(BlueFlashThreadProc, &myThreadData[loop1][loop2]); 921 + myThreadData[loop1][loop2].pctrlMSComm = &mycom[loop1][loop2];
  922 + myStaticSn[loop1][loop2].GetWindowText(strtmsg);
  923 + myThreadData[loop1][loop2].Filename = mystrAppcurrDir+"Bins\\ear\\"+strtmsg;
  924 +
  925 + if (g_AppMainData.ary_myComPort[loop1][loop2] >2)
  926 + {
  927 + myThreadData[loop1][loop2].StartThread = true;
  928 + //myThreadData[loop1][loop2].m_hThread = AfxBeginThread(BlueFlashThreadProc, &myThreadData[loop1][loop2]);
  929 + }
841 } 930 }
842 } 931 }
843 932
@@ -861,17 +950,17 @@ void CBlueFlashToolDlg::UartDeviceChange(void) @@ -861,17 +950,17 @@ void CBlueFlashToolDlg::UartDeviceChange(void)
861 itemdataComPortList=0; 950 itemdataComPortList=0;
862 itemdataComPortList = loop1<<16|loop2<<8; 951 itemdataComPortList = loop1<<16|loop2<<8;
863 myctrlComboComPort[loop1][loop2].SetItemData(0, itemdataComPortList); 952 myctrlComboComPort[loop1][loop2].SetItemData(0, itemdataComPortList);
864 - if (g_AppMainData.ary_myComPort[loop1][loop2] == 0) 953 + if (g_AppMainData.ary_myComPort[loop1][loop2] <2)
865 myctrlComboComPort[loop1][loop2].SetCurSel(0); 954 myctrlComboComPort[loop1][loop2].SetCurSel(0);
866 - for (loop3 = 0; loop3 < myAryNoneOpenedPort.GetSize(); loop3++) 955 + for (loop3 = 0; loop3 < myAryExistPort.GetSize(); loop3++)
867 { 956 {
868 CString strComName; 957 CString strComName;
869 - strComName.Format("COM%d",myAryNoneOpenedPort.GetAt(loop3)); 958 + strComName.Format("COM%d",myAryExistPort.GetAt(loop3));
870 int add_index = myctrlComboComPort[loop1][loop2].AddString(strComName); 959 int add_index = myctrlComboComPort[loop1][loop2].AddString(strComName);
871 itemdataComPortList=0; 960 itemdataComPortList=0;
872 - itemdataComPortList = loop1<<16|loop2<<8|add_index,myAryNoneOpenedPort.GetAt(loop3); 961 + itemdataComPortList = loop1<<16|loop2<<8|add_index,myAryExistPort.GetAt(loop3);
873 myctrlComboComPort[loop1][loop2].SetItemData(add_index,itemdataComPortList); 962 myctrlComboComPort[loop1][loop2].SetItemData(add_index,itemdataComPortList);
874 - if (myAryNoneOpenedPort.GetAt(loop3) == g_AppMainData.ary_myComPort[loop1][loop2]) 963 + if (myAryExistPort.GetAt(loop3) == g_AppMainData.ary_myComPort[loop1][loop2])
875 { 964 {
876 myctrlComboComPort[loop1][loop2].SetCurSel(add_index); 965 myctrlComboComPort[loop1][loop2].SetCurSel(add_index);
877 } 966 }
@@ -880,6 +969,7 @@ void CBlueFlashToolDlg::UartDeviceChange(void) @@ -880,6 +969,7 @@ void CBlueFlashToolDlg::UartDeviceChange(void)
880 } 969 }
881 } 970 }
882 971
  972 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
883 bool CBlueFlashToolDlg::LoadBin(int blueDeviceType) 973 bool CBlueFlashToolDlg::LoadBin(int blueDeviceType)
884 { 974 {
885 CFile MyFile1; 975 CFile MyFile1;
@@ -1008,4 +1098,51 @@ bool CBlueFlashToolDlg::SaveBin(int blueDeviceType,int index) @@ -1008,4 +1098,51 @@ bool CBlueFlashToolDlg::SaveBin(int blueDeviceType,int index)
1008 MyFile1.Close(); 1098 MyFile1.Close();
1009 1099
1010 } 1100 }
  1101 +#endif
1011 1102
  1103 +void CBlueFlashToolDlg::OnBnClickedStopAll()
  1104 +{
  1105 + int loop1,loop2;
  1106 + CString strtmsg;
  1107 + DWORD threadExitcode;
  1108 + for (loop1 = 0; loop1 < BLUE_TYPE_MAX; loop1++)
  1109 + {
  1110 + for (loop2 = 0; loop2 < MAX_TOPWELL_DEVICE_NUM; loop2++)
  1111 + {
  1112 + myThreadData[loop1][loop2].StartThread = false;
  1113 + GetExitCodeThread(myThreadData[loop1][loop2].m_hThread, &threadExitcode);
  1114 + if (threadExitcode != STILL_ACTIVE)
  1115 + myctrlStartButton[loop1][loop2].SetWindowText("开始");
  1116 + }
  1117 + }
  1118 +}
  1119 +
  1120 +void CBlueFlashToolDlg::DeletePCB(int device_type, int index)
  1121 +{
  1122 + myctrlPcbState[device_type][index].SetBitmap(myBitmapWait);
  1123 +}
  1124 +
  1125 +void CBlueFlashToolDlg::calcTImeWhenFinished(int device_type, int index)
  1126 +{
  1127 + char fileid[6];
  1128 + char *pchar;
  1129 + int loop;
  1130 + CString strOfFilename;
  1131 + memset(fileid,0,6);
  1132 + mytickcount[device_type][index][1] = GetTickCount();
  1133 + DBG_print("线路 %d %d 下载完成, 耗时 %d 秒",device_type+1,index+1,
  1134 + (mytickcount[device_type][index][1] -mytickcount[device_type][index][0] )/1000);
  1135 + mytickcount[device_type][index][0]=mytickcount[device_type][index][1] =0;
  1136 + myStaticSn[device_type][index].GetWindowText(strOfFilename);
  1137 + pchar = strOfFilename.GetBuffer(0);
  1138 + strncpy(fileid,pchar+3,4);
  1139 + for (loop = 0; loop < myAryFlashFail.GetSize(); loop++)
  1140 + {
  1141 + WORD thefileid = myAryFlashFail.GetAt(loop);
  1142 + if (atoi(fileid) == thefileid)
  1143 + {
  1144 + myAryFlashFail.RemoveAt(loop);
  1145 + myAryFlashSuc.Add(thefileid);
  1146 + }
  1147 + }
  1148 +}
@@ -23,7 +23,7 @@ typedef struct ThreadData @@ -23,7 +23,7 @@ typedef struct ThreadData
23 BYTE blue_device_type; 23 BYTE blue_device_type;
24 int nIndex; 24 int nIndex;
25 HANDLE m_hThread; 25 HANDLE m_hThread;
26 - bool StopThread; 26 + bool StartThread;
27 CString Filename; 27 CString Filename;
28 CMSComm *pctrlMSComm; 28 CMSComm *pctrlMSComm;
29 }FLASH_THREAD_DATA; 29 }FLASH_THREAD_DATA;
@@ -36,23 +36,21 @@ public: @@ -36,23 +36,21 @@ public:
36 void UpdateGroupsCaptions(); 36 void UpdateGroupsCaptions();
37 CBlueFlashToolDlg(CWnd* pParent = NULL); // standard constructor 37 CBlueFlashToolDlg(CWnd* pParent = NULL); // standard constructor
38 CComboBox myctrlComboComPort[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM]; 38 CComboBox myctrlComboComPort[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
39 - //多选框  
40 - CButton *pcheckButton[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];  
41 //下载按钮 39 //下载按钮
42 CButton myctrlStartButton[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM]; 40 CButton myctrlStartButton[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
43 //SN显 41 //SN显
44 - CStatic myStaticSn[MAX_TOPWELL_DEVICE_NUM]; 42 + CStatic myStaticSn[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
45 //进度条 43 //进度条
46 CProgressCtrl myctrlProcess[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM]; 44 CProgressCtrl myctrlProcess[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
47 //控件 45 //控件
48 - CMSComm *pctrlMSComm[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM]; 46 + //CMSComm *pctrlMSComm[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
49 //20个PCB检测指示器 47 //20个PCB检测指示器
50 CStatic myctrlPcbState[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];; 48 CStatic myctrlPcbState[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];;
51 //每条线的UART口是否有效 49 //每条线的UART口是否有效
52 bool ifUartEnable[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM]; 50 bool ifUartEnable[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
53 //待写入的SN号 51 //待写入的SN号
54 - int mySN_readwrite[MAX_TOPWELL_DEVICE_NUM];  
55 - //现成数据 52 + //int mySN_readwrite[MAX_TOPWELL_DEVICE_NUM];
  53 + //线程数据
56 FLASH_THREAD_DATA myThreadData[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];; 54 FLASH_THREAD_DATA myThreadData[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];;
57 //存在UART口 55 //存在UART口
58 CWordArray myAryExistPort; 56 CWordArray myAryExistPort;
@@ -62,22 +60,34 @@ public: @@ -62,22 +60,34 @@ public:
62 CWordArray myAryAlreadyOpenedPort; 60 CWordArray myAryAlreadyOpenedPort;
63 //不存在的UART口 61 //不存在的UART口
64 CWordArray myAryNotExistPort; 62 CWordArray myAryNotExistPort;
  63 + //调试信息列表
  64 + CListBox mylistDebugInfo;
  65 + //已经被成功下载的文件
  66 + CWordArray myAryFlashSuc;
  67 + //未被成功下载的文件
  68 + CWordArray myAryFlashFail;
  69 +
65 70
66 char strSignalFlashReady[16]; 71 char strSignalFlashReady[16];
67 char strSignalFlashing[13]; 72 char strSignalFlashing[13];
  73 + INT64 mytickcount[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM][2];
68 74
69 HBITMAP myBitmapWait; 75 HBITMAP myBitmapWait;
70 HBITMAP myBitmapReady; 76 HBITMAP myBitmapReady;
71 CFont myfontButton; 77 CFont myfontButton;
72 - 78 + CString mystrAppcurrDir;
  79 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
73 BYTE *mybufferForFile; 80 BYTE *mybufferForFile;
74 BYTE *mybufferForFileUSB; 81 BYTE *mybufferForFileUSB;
75 int myLenForFile; 82 int myLenForFile;
76 int myLenForFileUSB; 83 int myLenForFileUSB;
77 topwell_SN_write_struct *pSN_write; 84 topwell_SN_write_struct *pSN_write;
  85 +#endif
78 86
79 87
80 int DBG_print(const char * strMsg, ...); 88 int DBG_print(const char * strMsg, ...);
  89 + void DeletePCB(int device_type, int index);
  90 + void calcTImeWhenFinished(int device_type, int index);
81 91
82 92
83 // Dialog Data 93 // Dialog Data
@@ -160,25 +170,25 @@ public: @@ -160,25 +170,25 @@ public:
160 DECLARE_EVENTSINK_MAP() 170 DECLARE_EVENTSINK_MAP()
161 afx_msg void OnBnClickedButtonInitComport(); 171 afx_msg void OnBnClickedButtonInitComport();
162 afx_msg void OnDestroy(); 172 afx_msg void OnDestroy();
  173 + afx_msg void OnBnClickedStartAll();
163 174
164 void OnCommMscommDebug(); 175 void OnCommMscommDebug();
165 bool OpenComport(int earOrUsb, int index); 176 bool OpenComport(int earOrUsb, int index);
  177 + bool CloseComport(int earOrUsb, int index);
166 void OnCommMscomm1(UINT nID); 178 void OnCommMscomm1(UINT nID);
167 bool SendFileToComPort(BLUE_DEVICE_TYPE earOrUsb, int index); 179 bool SendFileToComPort(BLUE_DEVICE_TYPE earOrUsb, int index);
168 180
169 - //调试信息列表  
170 - CListBox mylistDebugInfo;  
171 - //  
172 - CButton mycheckUsbAll;  
173 181
174 182
175 183
176 - afx_msg void OnBnClickedStartAll();  
177 // 拔出或者插入UART线, 更新列表信息 184 // 拔出或者插入UART线, 更新列表信息
178 void UartDeviceChange(void); 185 void UartDeviceChange(void);
  186 + #ifdef __TOPWELL_EDIT_SN_ENABLE__
179 bool LoadBin(int blueDeviceType); 187 bool LoadBin(int blueDeviceType);
180 bool SaveBin(int blueDeviceType); 188 bool SaveBin(int blueDeviceType);
181 bool SaveBin(int blueDeviceType,int index); 189 bool SaveBin(int blueDeviceType,int index);
  190 + #endif
  191 + afx_msg void OnBnClickedStopAll();
182 }; 192 };
183 193
184 //{{AFX_INSERT_LOCATION}} 194 //{{AFX_INSERT_LOCATION}}
@@ -10,8 +10,8 @@ SN_cur=0 @@ -10,8 +10,8 @@ SN_cur=0
10 数据位=3 10 数据位=3
11 停止位=-127 11 停止位=-127
12 流控制=0 12 流控制=0
13 -ear_port1=2  
14 -ear_port2=0 13 +ear_port1=3
  14 +ear_port2=5
15 ear_port3=0 15 ear_port3=0
16 ear_port4=0 16 ear_port4=0
17 ear_port5=0 17 ear_port5=0
@@ -30,6 +30,10 @@ usb_port7=0 @@ -30,6 +30,10 @@ usb_port7=0
30 usb_port8=0 30 usb_port8=0
31 usb_port9=0 31 usb_port9=0
32 usb_port10=0 32 usb_port10=0
  33 +ear_port0=7
  34 +ear_port11=0
  35 +usb_port0=0
  36 +usb_port11=0
33 [BinFilePath] 37 [BinFilePath]
34 EarBin=h:\code\Optek_TBH01\BlueSea_OPTEK_LINK_LC3_DWE_RX3\upgrade_bin\BlueSea_USB_SD_SDK_uart_programming.bin 38 EarBin=h:\code\Optek_TBH01\BlueSea_OPTEK_LINK_LC3_DWE_RX3\upgrade_bin\BlueSea_USB_SD_SDK_uart_programming.bin
35 UsbBin=h:\code\Optek_TBH01\BlueSea_OPTEK_LINK_LC3_DWE_RX3\upgrade_bin\BlueSea_USB_SD_SDK_uart_programming.bin 39 UsbBin=h:\code\Optek_TBH01\BlueSea_OPTEK_LINK_LC3_DWE_RX3\upgrade_bin\BlueSea_USB_SD_SDK_uart_programming.bin
@@ -39,3 +43,8 @@ Btname_head=ERROR @@ -39,3 +43,8 @@ Btname_head=ERROR
39 Btname_start=-9999999 43 Btname_start=-9999999
40 Btname_end=-9999999 44 Btname_end=-9999999
41 Btname_cur=-9999999 45 Btname_cur=-9999999
  46 +[Config]
  47 +LastEarFile=1
  48 +LastUsbFile=1
  49 +FirstID_binFile=0
  50 +LastID_binFile=0
@@ -20,6 +20,8 @@ CSysConfig::CSysConfig(CWnd* pParent /*=NULL*/) @@ -20,6 +20,8 @@ CSysConfig::CSysConfig(CWnd* pParent /*=NULL*/)
20 , mystrSNHeader(_T("")) 20 , mystrSNHeader(_T(""))
21 , myintBandrate(_T("921600")) 21 , myintBandrate(_T("921600"))
22 , myAllowSave(true) 22 , myAllowSave(true)
  23 + , myintStart(0)
  24 + , myintEnd(0)
23 { 25 {
24 //{{AFX_DATA_INIT(CSysConfig) 26 //{{AFX_DATA_INIT(CSysConfig)
25 mystrFilePathUsb = _T(""); 27 mystrFilePathUsb = _T("");
@@ -69,6 +71,11 @@ void CSysConfig::DoDataExchange(CDataExchange* pDX) @@ -69,6 +71,11 @@ void CSysConfig::DoDataExchange(CDataExchange* pDX)
69 DDV_MaxChars(pDX, mystrSnEnd, 5); 71 DDV_MaxChars(pDX, mystrSnEnd, 5);
70 DDX_CBString(pDX, IDC_COMBO_BAND, myintBandrate); 72 DDX_CBString(pDX, IDC_COMBO_BAND, myintBandrate);
71 DDX_Control(pDX, IDC_CHECK_SAME_BTNAME, myCheckSameBtname); 73 DDX_Control(pDX, IDC_CHECK_SAME_BTNAME, myCheckSameBtname);
  74 + DDX_Control(pDX, IDC_CHECK_FLASH_ONE_BIN, mycheckAllOneBin);
  75 + DDX_Text(pDX, IDC_EDIT_BIN_START, myintStart);
  76 + DDV_MinMaxInt(pDX, myintStart, 0, 65535);
  77 + DDX_Text(pDX, IDC_EDIT_BIN_END, myintEnd);
  78 + DDV_MinMaxInt(pDX, myintEnd, 0, 65535);
72 } 79 }
73 80
74 81
@@ -80,6 +87,7 @@ BEGIN_MESSAGE_MAP(CSysConfig, CDialog) @@ -80,6 +87,7 @@ BEGIN_MESSAGE_MAP(CSysConfig, CDialog)
80 //}}AFX_MSG_MAP 87 //}}AFX_MSG_MAP
81 ON_BN_CLICKED(IDOK, &CSysConfig::OnBnClickedOk) 88 ON_BN_CLICKED(IDOK, &CSysConfig::OnBnClickedOk)
82 ON_BN_CLICKED(IDC_CHECK_SAME_BTNAME, &CSysConfig::OnBnClickedCheckSameBtname) 89 ON_BN_CLICKED(IDC_CHECK_SAME_BTNAME, &CSysConfig::OnBnClickedCheckSameBtname)
  90 + ON_BN_CLICKED(IDC_CHECK_FLASH_ONE_BIN, &CSysConfig::OnBnClickedCheckFlashOneBin)
83 END_MESSAGE_MAP() 91 END_MESSAGE_MAP()
84 92
85 ///////////////////////////////////////////////////////////////////////////// 93 /////////////////////////////////////////////////////////////////////////////
@@ -88,18 +96,22 @@ END_MESSAGE_MAP() @@ -88,18 +96,22 @@ END_MESSAGE_MAP()
88 void CSysConfig::OnCheckSameSn() 96 void CSysConfig::OnCheckSameSn()
89 { 97 {
90 // TODO: Add your control notification handler code here 98 // TODO: Add your control notification handler code here
  99 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
91 g_AppMainData.if_same_sn = myCheckSameSn.GetCheck(); 100 g_AppMainData.if_same_sn = myCheckSameSn.GetCheck();
92 GetDlgItem(IDC_EDIT_SN_START)->EnableWindow(!g_AppMainData.if_same_sn); 101 GetDlgItem(IDC_EDIT_SN_START)->EnableWindow(!g_AppMainData.if_same_sn);
93 GetDlgItem(IDC_EDIT_SN_END)->EnableWindow(!g_AppMainData.if_same_sn); 102 GetDlgItem(IDC_EDIT_SN_END)->EnableWindow(!g_AppMainData.if_same_sn);
94 GetDlgItem(IDC_EDIT_SN_HEADER)->EnableWindow(!g_AppMainData.if_same_sn); 103 GetDlgItem(IDC_EDIT_SN_HEADER)->EnableWindow(!g_AppMainData.if_same_sn);
  104 +#endif
95 } 105 }
96 106
97 void CSysConfig::OnBnClickedCheckSameBtname() 107 void CSysConfig::OnBnClickedCheckSameBtname()
98 { 108 {
  109 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
99 g_AppMainData.if_same_btname = myCheckSameBtname.GetCheck(); 110 g_AppMainData.if_same_btname = myCheckSameBtname.GetCheck();
100 GetDlgItem(IDC_EDIT_BTNAME_START)->EnableWindow(!g_AppMainData.if_same_btname); 111 GetDlgItem(IDC_EDIT_BTNAME_START)->EnableWindow(!g_AppMainData.if_same_btname);
101 GetDlgItem(IDC_EDIT_BTNAME_END)->EnableWindow(!g_AppMainData.if_same_btname); 112 GetDlgItem(IDC_EDIT_BTNAME_END)->EnableWindow(!g_AppMainData.if_same_btname);
102 GetDlgItem(IDC_EDIT_BTNAME_HEADER)->EnableWindow(!g_AppMainData.if_same_btname); 113 GetDlgItem(IDC_EDIT_BTNAME_HEADER)->EnableWindow(!g_AppMainData.if_same_btname);
  114 +#endif
103 } 115 }
104 116
105 BOOL CSysConfig::OnInitDialog() 117 BOOL CSysConfig::OnInitDialog()
@@ -109,15 +121,18 @@ BOOL CSysConfig::OnInitDialog() @@ -109,15 +121,18 @@ BOOL CSysConfig::OnInitDialog()
109 CString strComname,strCommConfiged; 121 CString strComname,strCommConfiged;
110 CDialog::OnInitDialog(); 122 CDialog::OnInitDialog();
111 123
112 -// } //数据初始化 124 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
  125 + //数据初始化
113 mystrSNHeader.Format("%s",g_AppMainData.SN_head); 126 mystrSNHeader.Format("%s",g_AppMainData.SN_head);
114 mystrSnStart.Format("%05d",g_AppMainData.SN_cur); 127 mystrSnStart.Format("%05d",g_AppMainData.SN_cur);
115 mystrSnEnd.Format("%05d",g_AppMainData.SN_end); 128 mystrSnEnd.Format("%05d",g_AppMainData.SN_end);
116 - 129 +#endif
117 mylistCheck.SetCurSel(g_AppMainData.com_config.bcheck); 130 mylistCheck.SetCurSel(g_AppMainData.com_config.bcheck);
118 mylistDatabit.SetCurSel(3); 131 mylistDatabit.SetCurSel(3);
119 mylistStopbit.SetCurSel(0); 132 mylistStopbit.SetCurSel(0);
120 mylistStreambit.SetCurSel(0); 133 mylistStreambit.SetCurSel(0);
  134 +
  135 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
121 //UI 初始化 136 //UI 初始化
122 myCheckSameSn.SetCheck(g_AppMainData.if_same_sn); 137 myCheckSameSn.SetCheck(g_AppMainData.if_same_sn);
123 138
@@ -131,15 +146,30 @@ BOOL CSysConfig::OnInitDialog() @@ -131,15 +146,30 @@ BOOL CSysConfig::OnInitDialog()
131 GetDlgItem(IDC_EDIT_BTNAME_START)->EnableWindow(FALSE); 146 GetDlgItem(IDC_EDIT_BTNAME_START)->EnableWindow(FALSE);
132 GetDlgItem(IDC_EDIT_BTNAME_END)->EnableWindow(FALSE); 147 GetDlgItem(IDC_EDIT_BTNAME_END)->EnableWindow(FALSE);
133 GetDlgItem(IDC_EDIT_BTNAME_HEADER)->EnableWindow(FALSE); 148 GetDlgItem(IDC_EDIT_BTNAME_HEADER)->EnableWindow(FALSE);
134 - 149 +#endif
135 150
136 mylistCheck.EnableWindow(FALSE); 151 mylistCheck.EnableWindow(FALSE);
137 mylistDatabit.EnableWindow(FALSE); 152 mylistDatabit.EnableWindow(FALSE);
138 mylistStopbit.EnableWindow(FALSE); 153 mylistStopbit.EnableWindow(FALSE);
139 mylistStreambit.EnableWindow(FALSE); 154 mylistStreambit.EnableWindow(FALSE);
  155 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
140 mystrFilePathEar = g_AppMainData.FilePathEar; 156 mystrFilePathEar = g_AppMainData.FilePathEar;
141 mystrFilePathUsb = g_AppMainData.FilePathUsb; 157 mystrFilePathUsb = g_AppMainData.FilePathUsb;
  158 +#endif
  159 + if (g_AppMainData.firstID_binfile == g_AppMainData.lastID_binfile)
  160 + {
  161 + mycheckAllOneBin.SetCheck(1);
  162 + GetDlgItem(IDC_EDIT_BIN_START)->EnableWindow(FALSE);
  163 + GetDlgItem(IDC_EDIT_BIN_END)->EnableWindow(FALSE);
  164 + }
  165 + else
  166 + {
  167 + GetDlgItem(IDC_EDIT_BIN_START)->EnableWindow(TRUE);
  168 + GetDlgItem(IDC_EDIT_BIN_END)->EnableWindow(TRUE);
  169 + myintStart = g_AppMainData.firstID_binfile;
  170 + myintEnd = g_AppMainData.lastID_binfile;
142 171
  172 + }
143 UpdateData(FALSE); 173 UpdateData(FALSE);
144 174
145 return TRUE; // return TRUE unless you set the focus to a control 175 return TRUE; // return TRUE unless you set the focus to a control
@@ -181,6 +211,7 @@ void CSysConfig::OnBnClickedOk() @@ -181,6 +211,7 @@ void CSysConfig::OnBnClickedOk()
181 MessageBox("请核对端口配置参数是否有误", "Warning"); 211 MessageBox("请核对端口配置参数是否有误", "Warning");
182 return; 212 return;
183 } 213 }
  214 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
184 if (!myCheckSameSn.GetCheck()) 215 if (!myCheckSameSn.GetCheck())
185 { 216 {
186 if (mystrSnStart.GetLength()<5 ||mystrSnEnd.GetLength()<5 ) 217 if (mystrSnStart.GetLength()<5 ||mystrSnEnd.GetLength()<5 )
@@ -211,6 +242,7 @@ void CSysConfig::OnBnClickedOk() @@ -211,6 +242,7 @@ void CSysConfig::OnBnClickedOk()
211 g_AppMainData.com_config.cdatabit = mylistDatabit.GetCurSel(); 242 g_AppMainData.com_config.cdatabit = mylistDatabit.GetCurSel();
212 g_AppMainData.com_config.dstopbit = mylistStopbit.GetCurSel(); 243 g_AppMainData.com_config.dstopbit = mylistStopbit.GetCurSel();
213 g_AppMainData.com_config.estreambit = mylistStreambit.GetCurSel(); 244 g_AppMainData.com_config.estreambit = mylistStreambit.GetCurSel();
  245 +#endif
214 if (mystrFilePathEar == "") 246 if (mystrFilePathEar == "")
215 { 247 {
216 MessageBox("未选择耳机软件", "Warning"); 248 MessageBox("未选择耳机软件", "Warning");
@@ -219,12 +251,34 @@ void CSysConfig::OnBnClickedOk() @@ -219,12 +251,34 @@ void CSysConfig::OnBnClickedOk()
219 { 251 {
220 MessageBox("未选择发射器软件", "Warning"); 252 MessageBox("未选择发射器软件", "Warning");
221 } 253 }
  254 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
222 g_AppMainData.FilePathEar = mystrFilePathEar; 255 g_AppMainData.FilePathEar = mystrFilePathEar;
223 g_AppMainData.FilePathUsb = mystrFilePathUsb; 256 g_AppMainData.FilePathUsb = mystrFilePathUsb;
224 - 257 +#endif
225 g_pmainapp->SaveConfigs(); 258 g_pmainapp->SaveConfigs();
226 259
227 260
228 CDialog::OnOK(); 261 CDialog::OnOK();
229 } 262 }
230 263
  264 +
  265 +void CSysConfig::OnBnClickedCheckFlashOneBin()
  266 +{
  267 + if (mycheckAllOneBin.GetCheck())
  268 + {
  269 + GetDlgItem(IDC_EDIT_BIN_START)->EnableWindow(FALSE);
  270 + GetDlgItem(IDC_EDIT_BIN_END)->EnableWindow(FALSE);
  271 + myintStart = myintEnd = 0;
  272 + MessageBox("需要下载的软件命名为RX_0000.bin或者TX_0000.bin");
  273 + }
  274 + else
  275 + {
  276 + GetDlgItem(IDC_EDIT_BIN_START)->EnableWindow(TRUE);
  277 + GetDlgItem(IDC_EDIT_BIN_END)->EnableWindow(TRUE);
  278 + myintStart = 0;
  279 + myintEnd = 30000;
  280 +
  281 +
  282 + }
  283 + UpdateData(FALSE);
  284 +}
@@ -80,6 +80,10 @@ public: @@ -80,6 +80,10 @@ public:
80 bool myAllowSave; 80 bool myAllowSave;
81 afx_msg void OnBnClickedCheckSameBtname(); 81 afx_msg void OnBnClickedCheckSameBtname();
82 CButton myCheckSameBtname; 82 CButton myCheckSameBtname;
  83 + afx_msg void OnBnClickedCheckFlashOneBin();
  84 + CButton mycheckAllOneBin;
  85 + int myintStart;
  86 + int myintEnd;
83 }; 87 };
84 88
85 //{{AFX_INSERT_LOCATION}} 89 //{{AFX_INSERT_LOCATION}}
@@ -110,6 +110,10 @@ @@ -110,6 +110,10 @@
110 #define IDC_STATIC_GROUP_EAR 1148 110 #define IDC_STATIC_GROUP_EAR 1148
111 #define IDC_STATIC_GROUP_USB 1149 111 #define IDC_STATIC_GROUP_USB 1149
112 #define IDC_STATIC_GROUP_DEBUG_INFO 1150 112 #define IDC_STATIC_GROUP_DEBUG_INFO 1150
  113 +#define IDC_CHECK_FLASH_ONE_BIN 1151
  114 +#define IDC_EDIT_BIN_START 1152
  115 +#define IDC_EDIT3 1153
  116 +#define IDC_EDIT_BIN_END 1153
113 #define IDC_PROGRESS_FLASH0 1200 117 #define IDC_PROGRESS_FLASH0 1200
114 #define IDC_PROGRESS_FLASH1 1201 118 #define IDC_PROGRESS_FLASH1 1201
115 #define IDC_PROGRESS_FLASH2 1202 119 #define IDC_PROGRESS_FLASH2 1202
@@ -582,7 +586,6 @@ @@ -582,7 +586,6 @@
582 #define IDC_BUTTON_INIT_COMPORT 2017 586 #define IDC_BUTTON_INIT_COMPORT 2017
583 #define IDC_EDIT_BTNAME_START 2017 587 #define IDC_EDIT_BTNAME_START 2017
584 #define IDC_EDIT1 2018 588 #define IDC_EDIT1 2018
585 -#define IDC_EDIT_SN_END2 2018  
586 #define IDC_EDIT_BTNAME_END 2018 589 #define IDC_EDIT_BTNAME_END 2018
587 #define IDC_EDIT_SN_HEADER 2019 590 #define IDC_EDIT_SN_HEADER 2019
588 #define IDC_FLASH_READAY 2020 591 #define IDC_FLASH_READAY 2020
@@ -594,7 +597,7 @@ @@ -594,7 +597,7 @@
594 #ifndef APSTUDIO_READONLY_SYMBOLS 597 #ifndef APSTUDIO_READONLY_SYMBOLS
595 #define _APS_NEXT_RESOURCE_VALUE 135 598 #define _APS_NEXT_RESOURCE_VALUE 135
596 #define _APS_NEXT_COMMAND_VALUE 32771 599 #define _APS_NEXT_COMMAND_VALUE 32771
597 -#define _APS_NEXT_CONTROL_VALUE 1151 600 +#define _APS_NEXT_CONTROL_VALUE 1153
598 #define _APS_NEXT_SYMED_VALUE 101 601 #define _APS_NEXT_SYMED_VALUE 101
599 #endif 602 #endif
600 #endif 603 #endif
Please register or login to post a comment