Commit c6eecaddd2663b91fa8575ce31ec6e9eaac54c41

Authored by xiemeng
1 parent 9eb79608

update 20210202

... ... @@ -103,128 +103,107 @@ BOOL CBlueFlashToolApp::InitInstance()
103 103 // 加载程序默认配置
104 104 bool CBlueFlashToolApp::LoadConfigs(void)
105 105 {
  106 + CString strkeyname;
  107 + int loop1,loop2;
  108 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
106 109 g_AppMainData.if_same_sn = g_globalini.ReadBool("SN_Config","SN_same");
107 110 g_AppMainData.SN_head = g_globalini.ReadString("SN_Config","SN_head");
108 111 g_AppMainData.SN_start = g_globalini.ReadInt("SN_Config","SN_start");
109 112 g_AppMainData.SN_end = g_globalini.ReadInt("SN_Config","SN_end");
110 113 g_AppMainData.SN_cur = g_globalini.ReadInt("SN_Config","SN_cur");
111   -
112 114 g_AppMainData.if_same_btname = g_globalini.ReadBool("BT_name_Config","Btname_same");
113 115 g_AppMainData.btname_head = g_globalini.ReadString("BT_name_Config","Btname_head");
114 116 g_AppMainData.btname_start = g_globalini.ReadInt("BT_name_Config","Btname_start");
115 117 g_AppMainData.btname_end = g_globalini.ReadInt("BT_name_Config","Btname_end");
116 118 g_AppMainData.btname_cur = g_globalini.ReadInt("BT_name_Config","Btname_cur");
117   -
118   -
119   -
  119 +#endif
120 120 g_AppMainData.com_config.aBandrate = g_globalini.ReadInt("UART_Config","波特率");
121 121 g_AppMainData.com_config.bcheck = g_globalini.ReadInt("UART_Config","校验位");
122 122 g_AppMainData.com_config.cdatabit = g_globalini.ReadInt("UART_Config","数据位");
123 123 g_AppMainData.com_config.dstopbit = g_globalini.ReadInt("UART_Config","停止??");
124 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 161 return true;
156 162 }
157 163
158 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 170 g_globalini.WriteBool("SN_Config","SN_same",g_AppMainData.if_same_sn);
179 171 g_globalini.WriteString("SN_Config","SN_head",g_AppMainData.SN_head);
180 172 g_globalini.WriteInt("SN_Config","SN_start",g_AppMainData.SN_start);
181 173 g_globalini.WriteInt("SN_Config","SN_end",g_AppMainData.SN_end);
182 174 g_globalini.WriteInt("SN_Config","SN_cur",g_AppMainData.SN_cur);
183   -
184   -
185 175 g_globalini.WriteBool("BT_name_Config","Btname_same",g_AppMainData.if_same_btname);
186 176 g_globalini.WriteString("BT_name_Config","Btname_head",g_AppMainData.btname_head);
187 177 g_globalini.WriteInt("BT_name_Config","Btname_start",g_AppMainData.btname_start);
188 178 g_globalini.WriteInt("BT_name_Config","Btname_end",g_AppMainData.btname_end);
189 179 g_globalini.WriteInt("BT_name_Config","Btname_cur",g_AppMainData.btname_cur);
190   -
191   -
192   -
193   -
194   -
  180 +#endif
195 181 g_globalini.WriteInt("UART_Config","波特率",g_AppMainData.com_config.aBandrate);
196 182 g_globalini.WriteInt("UART_Config","校验位",g_AppMainData.com_config.bcheck);
197 183 g_globalini.WriteInt("UART_Config","数据位",g_AppMainData.com_config.cdatabit);
198 184 g_globalini.WriteInt("UART_Config","停止位",g_AppMainData.com_config.dstopbit);
199 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 204 g_globalini.WriteString("BinFilePath","EarBin",g_AppMainData.FilePathEar);
223 205 g_globalini.WriteString("BinFilePath","UsbBin",g_AppMainData.FilePathUsb);
224   -
225   -
226   -
227   -
  206 +#endif
228 207 return true;
229 208 }
230 209
... ...
... ... @@ -24,7 +24,7 @@
24 24
25 25
26 26
27   -
  27 +//#define __TOPWELL_EDIT_SN_ENABLE__
28 28
29 29 #define MAX_PATH 260
30 30 #define WM_UPDATEPOS WM_USER + 1000
... ... @@ -37,7 +37,7 @@ typedef enum
37 37 BLUE_TYPE_USB,
38 38 BLUE_TYPE_MAX
39 39 }BLUE_DEVICE_TYPE;
40   -
  40 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
41 41 typedef struct
42 42 {
43 43 char topwell_for_search[20];
... ... @@ -45,6 +45,7 @@ typedef struct
45 45 char bt_name[64];
46 46 char optek_link_group[3];
47 47 }topwell_SN_write_struct;
  48 +#endif
48 49
49 50
50 51
... ... @@ -60,8 +61,18 @@ typedef struct
60 61 typedef struct
61 62 {
62 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 73 short int_myComPortDebug;
64 74 com_config_struct com_config;
  75 + #ifdef __TOPWELL_EDIT_SN_ENABLE__
65 76 BOOL if_same_sn;
66 77 CString SN_head;
67 78 int SN_start;
... ... @@ -72,10 +83,7 @@ typedef struct
72 83 int btname_start;
73 84 int btname_end;
74 85 int btname_cur;
75   -
76   - int int_ResendTime;
77   - CString FilePathUsb;
78   - CString FilePathEar;
  86 + #endif
79 87 }app_main_data_struct;
80 88
81 89 extern app_main_data_struct g_AppMainData;
... ...
... ... @@ -180,6 +180,12 @@ BEGIN
180 180 LTEXT "到",IDC_STATIC,69,106,9,12,SS_CENTERIMAGE
181 181 LTEXT "SN号前缀",IDC_STATIC,5,93,34,11,SS_CENTERIMAGE
182 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 189 END
184 190
185 191
... ...
... ... @@ -112,8 +112,8 @@
112 112 </Configuration>
113 113 <Configuration
114 114 Name="Debug|Win32"
115   - OutputDirectory=".\Debug"
116   - IntermediateDirectory=".\Debug"
  115 + OutputDirectory="$(SolutionDir)$(ConfigurationName)"
  116 + IntermediateDirectory="$(ConfigurationName)"
117 117 ConfigurationType="1"
118 118 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
119 119 UseOfMFC="2"
... ...
... ... @@ -30,13 +30,10 @@ CBlueFlashToolDlg::CBlueFlashToolDlg(CWnd* pParent /*=NULL*/)
30 30 //}}AFX_DATA_INIT
31 31 // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
32 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 34 memcpy(strSignalFlashReady,"\xFC\x4F\x70\x74\x65\x6B\x20\x52\x4F\x4D\x20\x62\x6F\x6F\x74\x00",16);
39 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 39 void CBlueFlashToolDlg::DoDataExchange(CDataExchange* pDX)
... ... @@ -159,6 +156,7 @@ BEGIN_MESSAGE_MAP(CBlueFlashToolDlg, CDialog)
159 156
160 157 ON_WM_DESTROY()
161 158 ON_BN_CLICKED(IDC_START_ALL, &CBlueFlashToolDlg::OnBnClickedStartAll)
  159 + ON_BN_CLICKED(IDC_STOP_ALL, &CBlueFlashToolDlg::OnBnClickedStopAll)
162 160 END_MESSAGE_MAP()
163 161
164 162 /////////////////////////////////////////////////////////////////////////////
... ... @@ -172,16 +170,18 @@ BOOL CBlueFlashToolDlg::OnInitDialog()
172 170 RECT rect_comport[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
173 171 RECT rect_process_bar[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
174 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 174 RECT rect_this;
177 175 CString m_strSettings;
178 176
179 177 CDialog::OnInitDialog();
180 178
  179 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
181 180 mybufferForFile = new BYTE [1024*1024*2];
182 181 mybufferForFileUSB = new BYTE [1024*1024*2];
183 182 LoadBin((int)BLUE_TYPE_EAR);
184 183 LoadBin((int)BLUE_TYPE_USB);
  184 +#endif
185 185 GetWindowRect(&rect_this);
186 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 187 DEFAULT_PITCH | FF_MODERN,_T("宋体") ) ;
... ... @@ -200,26 +200,32 @@ BOOL CBlueFlashToolDlg::OnInitDialog()
200 200 {
201 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 210 rect_pcb[loop1][loop2].right= rect_pcb[loop1][loop2].left+15;
210 211 rect_comport[loop1][loop2].right = rect_comport[loop1][loop2].left+70;
211 212 rect_process_bar[loop1][loop2].right = rect_process_bar[loop1][loop2].left+100;
212 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 216 rect_pcb[loop1][loop2].top = 30+25*loop2;
215 217 rect_comport[loop1][loop2].top = 30+25*loop2;
216 218 rect_process_bar[loop1][loop2].top = 30+25*loop2;
217 219 rect_start_button[loop1][loop2].top = 30+25*loop2;
  220 + rect_SN_info[loop1][loop2].top = 30+25*loop2;
218 221
219 222 rect_pcb[loop1][loop2].bottom= rect_pcb[loop1][loop2].top+20;
220 223 rect_comport[loop1][loop2].bottom = rect_comport[loop1][loop2].top+200;
221 224 rect_process_bar[loop1][loop2].bottom = rect_process_bar[loop1][loop2].top+20;
222 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 230 //PCB LED
225 231 myctrlPcbState[loop1][loop2].Create(NULL, SS_BITMAP |WS_CHILD|WS_VISIBLE,
... ... @@ -237,79 +243,67 @@ BOOL CBlueFlashToolDlg::OnInitDialog()
237 243 // Create a push button.
238 244 myctrlStartButton[loop1][loop2].Create("开始",WS_VISIBLE|BS_PUSHBUTTON,
239 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 251 //WM_DEVICECHANGE
270 252
271 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 255 GetDlgItem(IDC_STATIC_GROUP_DEBUG_INFO)->SetWindowText("运行日志");
274 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 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 262 GetDlgItem(IDC_STATIC_GROUP_EAR)->SetWindowText("耳机下载");
281 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 266 GetDlgItem(IDC_STATIC_GROUP_USB)->SetWindowText("发射器下载");
285 267
286 268
287 269
288 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 273 100,50);
292 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 277 100,50);
296 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 281 100,50);
300 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 285 100,50);
304 286
305 287 GetDlgItem(IDC_START_ALL)->SetFont(&myfontButton);
306 288 GetDlgItem(IDC_STOP_ALL)->SetFont(&myfontButton);
307 289 GetDlgItem(IDC_BUTTON_INIT_COMPORT)->SetFont(&myfontButton);
308 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 292 rect_this.bottom = rect_this.top + rect_pcb[0][loop2-1].bottom+350;
311 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 354 {
361 355 CSysConfig dlg;
362 356 dlg.DoModal();
  357 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
363 358 LoadBin((int)BLUE_TYPE_EAR);
364 359 LoadBin((int)BLUE_TYPE_USB);
365   -
  360 +#endif
366 361 UpdateGroupsCaptions();
367 362
368 363 }
... ... @@ -371,7 +366,8 @@ void CBlueFlashToolDlg::UpdateGroupsCaptions()
371 366 {
372 367 CString strCaptionStatics;
373 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 371 int sumPort = 0,sumForSn = 0;
376 372 CButton * pbutton;
377 373
... ... @@ -380,25 +376,23 @@ void CBlueFlashToolDlg::UpdateGroupsCaptions()
380 376 sumForSn = 0;
381 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 387 myctrlStartButton[loop1][loop2].EnableWindow(TRUE);
  388 + }
386 389 else
  390 + {
  391 + myStaticSn[loop1][loop2].SetWindowText("无文件");
387 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 398 GetDlgItem(IDC_START_ALL)->EnableWindow(sumPort> 0 ? TRUE: FALSE);
... ... @@ -419,12 +413,29 @@ void CBlueFlashToolDlg::OnCommMscommDebug()
419 413 void CBlueFlashToolDlg::OnBnClickedButtonInitComport()
420 414 {
421 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 440 UpdateGroupsCaptions();
430 441 }
... ... @@ -434,7 +445,9 @@ void CBlueFlashToolDlg::OnBnClickedButtonInitComport()
434 445 void CBlueFlashToolDlg::OnDestroy()
435 446 {
436 447 CDialog::OnDestroy();
  448 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
437 449 delete mybufferForFile;
  450 +#endif
438 451 g_pmainapp->SaveConfigs();
439 452 }
440 453
... ... @@ -445,7 +458,7 @@ bool CBlueFlashToolDlg::OpenComport(int earOrUsb, int index)
445 458 CString m_strSettings;
446 459 int comopen_port;
447 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 462 comopen_port =g_AppMainData.ary_myComPort[earOrUsb][index] ;
450 463 if (comopen_port<2)
451 464 {
... ... @@ -467,6 +480,13 @@ bool CBlueFlashToolDlg::OpenComport(int earOrUsb, int index)
467 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 490 if (!mycom[earOrUsb][index].GetPortOpen())
471 491 {
472 492 try
... ... @@ -492,6 +512,33 @@ bool CBlueFlashToolDlg::OpenComport(int earOrUsb, int index)
492 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 542 int CBlueFlashToolDlg::DBG_print(const char * strMsg, ...)
496 543 {
497 544 int var_tickcount = 0;
... ... @@ -533,9 +580,9 @@ void CBlueFlashToolDlg::OnCommMscomm1(UINT nID)
533 580 aDeviceType = BLUE_TYPE_USB;
534 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 586 safearray_inp = variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
540 587 len = safearray_inp.GetOneDimSize(); //得到有效数据长度
541 588 for (k = 0; k < len; k++)
... ... @@ -543,7 +590,12 @@ void CBlueFlashToolDlg::OnCommMscomm1(UINT nID)
543 590 if(strstr((char *)rxdata, strSignalFlashReady) == NULL)
544 591 myctrlPcbState[aDeviceType][aIndex].SetBitmap(myBitmapWait);
545 592 else
  593 + {
546 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 599 if (strstr((char *)rxdata,strSignalFlashing) != NULL)
548 600 {
549 601 strncpy(flash_process,(char *)(rxdata+12),3);
... ... @@ -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 629 aDeviceType = (BLUE_DEVICE_TYPE)pThreadData->blue_device_type;
573 630 aIndex = pThreadData->nIndex;
574 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 639 if (!IsExistFile(pThreadData->Filename))
578 640 {
579 641 pThreadData->pDlg->DBG_print("[%d]文件不存在, 请重新设定软件路径",__LINE__);
  642 + pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("开始");
  643 + pThreadData->pDlg->DeletePCB(aDeviceType,aIndex);
580 644 return -1;
581 645 }
582 646 pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("停止");
... ... @@ -590,11 +654,12 @@ UINT BlueFlashThreadProc(LPVOID lParam)
590 654
591 655 for(loop=0;loop<numParts;loop++)
592 656 {
593   - if (pThreadData->StopThread)
  657 + if (pThreadData->StartThread == false)
594 658 {// 检查是否有停止指令
595 659 MyFile1.Close();
596 660 ByteArray_512.RemoveAll();
597 661 pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("开始");
  662 + pThreadData->pDlg->DeletePCB(aDeviceType,aIndex);
598 663 return 0;
599 664 }
600 665
... ... @@ -605,7 +670,8 @@ UINT BlueFlashThreadProc(LPVOID lParam)
605 670 ByteArray_512.SetAt(i, ByteBuf_512[i]); //把buf的1k数据转化为十六进制到array中,用于串口发送
606 671 pctrlMSComm->SetOutput((COleVariant) ByteArray_512); //发送
607 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 676 if (Partsremain>0)
611 677 {
... ... @@ -617,11 +683,15 @@ UINT BlueFlashThreadProc(LPVOID lParam)
617 683 pctrlMSComm->SetOutput((COleVariant) ByteArray_512); //发送
618 684 }
619 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 688 MyFile1.Close();
623 689 ByteArray_512.RemoveAll();
  690 +
  691 + //pThreadData->pDlg->DBG_print("线路%d, %d 下载完成!!!",aDeviceType+1,aIndex+1);
  692 + pThreadData->pDlg->calcTImeWhenFinished(aDeviceType,aIndex);
624 693 pThreadData->pDlg->myctrlStartButton[aDeviceType][aIndex].SetWindowText("开始");
  694 + pThreadData->pDlg->DeletePCB(aDeviceType,aIndex);
625 695 return 0;
626 696 }
627 697
... ... @@ -726,6 +796,15 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam
726 796 {
727 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 808 case WM_DEVICECHANGE:
730 809 {
731 810 DEV_BROADCAST_HDR *pdevices_info = (DEV_BROADCAST_HDR *)lParam;
... ... @@ -767,7 +846,10 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam
767 846 device_index = HIBYTE(LOWORD(itemdataCombo));
768 847 g_AppMainData.ary_myComPort[device_type][device_index] = LOBYTE(LOWORD(itemdataCombo));;
769 848 if (g_AppMainData.ary_myComPort[device_type][device_index] == 1)
  849 + {
  850 + DBG_print("COM1不可用!");
770 851 g_AppMainData.ary_myComPort[device_type][device_index] = 0;
  852 + }
771 853 }
772 854 UpdateGroupsCaptions();
773 855 }
... ... @@ -784,18 +866,15 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam
784 866 if (!OpenComport(device_type, device_index))
785 867 return 0;
786 868 }
  869 + #ifdef __TOPWELL_EDIT_SN_ENABLE__
787 870 if (SaveBin(device_type,device_index) == false)
788 871 {
789 872 DBG_print("生成文件失败");
790 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 878 GetDlgItem(currID)->GetWindowText(strButonText);
800 879 if (strButonText == "开始")
801 880 {
... ... @@ -804,16 +883,19 @@ LRESULT CBlueFlashToolDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam
804 883 myThreadData[device_type][device_index].blue_device_type = (BYTE)
805 884 device_type;
806 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 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 910 void CBlueFlashToolDlg::OnBnClickedStartAll()
829 911 {
830 912 int loop1,loop2;
  913 + CString strtmsg;
831 914 for (loop1 = 0; loop1 < BLUE_TYPE_MAX; loop1++)
832 915 {
833 916 for (loop2 = 0; loop2 < MAX_TOPWELL_DEVICE_NUM; loop2++)
... ... @@ -835,9 +918,15 @@ void CBlueFlashToolDlg::OnBnClickedStartAll()
835 918 myThreadData[loop1][loop2].pDlg = this;
836 919 myThreadData[loop1][loop2].blue_device_type = (BYTE)loop1;
837 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 950 itemdataComPortList=0;
862 951 itemdataComPortList = loop1<<16|loop2<<8;
863 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 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 957 CString strComName;
869   - strComName.Format("COM%d",myAryNoneOpenedPort.GetAt(loop3));
  958 + strComName.Format("COM%d",myAryExistPort.GetAt(loop3));
870 959 int add_index = myctrlComboComPort[loop1][loop2].AddString(strComName);
871 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 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 965 myctrlComboComPort[loop1][loop2].SetCurSel(add_index);
877 966 }
... ... @@ -880,6 +969,7 @@ void CBlueFlashToolDlg::UartDeviceChange(void)
880 969 }
881 970 }
882 971
  972 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
883 973 bool CBlueFlashToolDlg::LoadBin(int blueDeviceType)
884 974 {
885 975 CFile MyFile1;
... ... @@ -1008,4 +1098,51 @@ bool CBlueFlashToolDlg::SaveBin(int blueDeviceType,int index)
1008 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 23 BYTE blue_device_type;
24 24 int nIndex;
25 25 HANDLE m_hThread;
26   - bool StopThread;
  26 + bool StartThread;
27 27 CString Filename;
28 28 CMSComm *pctrlMSComm;
29 29 }FLASH_THREAD_DATA;
... ... @@ -36,23 +36,21 @@ public:
36 36 void UpdateGroupsCaptions();
37 37 CBlueFlashToolDlg(CWnd* pParent = NULL); // standard constructor
38 38 CComboBox myctrlComboComPort[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
39   - //多选框
40   - CButton *pcheckButton[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
41 39 //下载按钮
42 40 CButton myctrlStartButton[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
43 41 //SN显
44   - CStatic myStaticSn[MAX_TOPWELL_DEVICE_NUM];
  42 + CStatic myStaticSn[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
45 43 //进度条
46 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 47 //20个PCB检测指示器
50 48 CStatic myctrlPcbState[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];;
51 49 //每条线的UART口是否有效
52 50 bool ifUartEnable[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];
53 51 //待写入的SN号
54   - int mySN_readwrite[MAX_TOPWELL_DEVICE_NUM];
55   - //现成数据
  52 + //int mySN_readwrite[MAX_TOPWELL_DEVICE_NUM];
  53 + //线程数据
56 54 FLASH_THREAD_DATA myThreadData[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM];;
57 55 //存在UART口
58 56 CWordArray myAryExistPort;
... ... @@ -62,22 +60,34 @@ public:
62 60 CWordArray myAryAlreadyOpenedPort;
63 61 //不存在的UART口
64 62 CWordArray myAryNotExistPort;
  63 + //调试信息列表
  64 + CListBox mylistDebugInfo;
  65 + //已经被成功下载的文件
  66 + CWordArray myAryFlashSuc;
  67 + //未被成功下载的文件
  68 + CWordArray myAryFlashFail;
  69 +
65 70
66 71 char strSignalFlashReady[16];
67 72 char strSignalFlashing[13];
  73 + INT64 mytickcount[BLUE_TYPE_MAX][MAX_TOPWELL_DEVICE_NUM][2];
68 74
69 75 HBITMAP myBitmapWait;
70 76 HBITMAP myBitmapReady;
71 77 CFont myfontButton;
72   -
  78 + CString mystrAppcurrDir;
  79 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
73 80 BYTE *mybufferForFile;
74 81 BYTE *mybufferForFileUSB;
75 82 int myLenForFile;
76 83 int myLenForFileUSB;
77 84 topwell_SN_write_struct *pSN_write;
  85 +#endif
78 86
79 87
80 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 93 // Dialog Data
... ... @@ -160,25 +170,25 @@ public:
160 170 DECLARE_EVENTSINK_MAP()
161 171 afx_msg void OnBnClickedButtonInitComport();
162 172 afx_msg void OnDestroy();
  173 + afx_msg void OnBnClickedStartAll();
163 174
164 175 void OnCommMscommDebug();
165 176 bool OpenComport(int earOrUsb, int index);
  177 + bool CloseComport(int earOrUsb, int index);
166 178 void OnCommMscomm1(UINT nID);
167 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 184 // 拔出或者插入UART线, 更新列表信息
178 185 void UartDeviceChange(void);
  186 + #ifdef __TOPWELL_EDIT_SN_ENABLE__
179 187 bool LoadBin(int blueDeviceType);
180 188 bool SaveBin(int blueDeviceType);
181 189 bool SaveBin(int blueDeviceType,int index);
  190 + #endif
  191 + afx_msg void OnBnClickedStopAll();
182 192 };
183 193
184 194 //{{AFX_INSERT_LOCATION}}
... ...
... ... @@ -10,8 +10,8 @@ SN_cur=0
10 10 数据位=3
11 11 停止位=-127
12 12 流控制=0
13   -ear_port1=2
14   -ear_port2=0
  13 +ear_port1=3
  14 +ear_port2=5
15 15 ear_port3=0
16 16 ear_port4=0
17 17 ear_port5=0
... ... @@ -30,6 +30,10 @@ usb_port7=0
30 30 usb_port8=0
31 31 usb_port9=0
32 32 usb_port10=0
  33 +ear_port0=7
  34 +ear_port11=0
  35 +usb_port0=0
  36 +usb_port11=0
33 37 [BinFilePath]
34 38 EarBin=h:\code\Optek_TBH01\BlueSea_OPTEK_LINK_LC3_DWE_RX3\upgrade_bin\BlueSea_USB_SD_SDK_uart_programming.bin
35 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 43 Btname_start=-9999999
40 44 Btname_end=-9999999
41 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 20 , mystrSNHeader(_T(""))
21 21 , myintBandrate(_T("921600"))
22 22 , myAllowSave(true)
  23 + , myintStart(0)
  24 + , myintEnd(0)
23 25 {
24 26 //{{AFX_DATA_INIT(CSysConfig)
25 27 mystrFilePathUsb = _T("");
... ... @@ -69,6 +71,11 @@ void CSysConfig::DoDataExchange(CDataExchange* pDX)
69 71 DDV_MaxChars(pDX, mystrSnEnd, 5);
70 72 DDX_CBString(pDX, IDC_COMBO_BAND, myintBandrate);
71 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 87 //}}AFX_MSG_MAP
81 88 ON_BN_CLICKED(IDOK, &CSysConfig::OnBnClickedOk)
82 89 ON_BN_CLICKED(IDC_CHECK_SAME_BTNAME, &CSysConfig::OnBnClickedCheckSameBtname)
  90 + ON_BN_CLICKED(IDC_CHECK_FLASH_ONE_BIN, &CSysConfig::OnBnClickedCheckFlashOneBin)
83 91 END_MESSAGE_MAP()
84 92
85 93 /////////////////////////////////////////////////////////////////////////////
... ... @@ -88,18 +96,22 @@ END_MESSAGE_MAP()
88 96 void CSysConfig::OnCheckSameSn()
89 97 {
90 98 // TODO: Add your control notification handler code here
  99 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
91 100 g_AppMainData.if_same_sn = myCheckSameSn.GetCheck();
92 101 GetDlgItem(IDC_EDIT_SN_START)->EnableWindow(!g_AppMainData.if_same_sn);
93 102 GetDlgItem(IDC_EDIT_SN_END)->EnableWindow(!g_AppMainData.if_same_sn);
94 103 GetDlgItem(IDC_EDIT_SN_HEADER)->EnableWindow(!g_AppMainData.if_same_sn);
  104 +#endif
95 105 }
96 106
97 107 void CSysConfig::OnBnClickedCheckSameBtname()
98 108 {
  109 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
99 110 g_AppMainData.if_same_btname = myCheckSameBtname.GetCheck();
100 111 GetDlgItem(IDC_EDIT_BTNAME_START)->EnableWindow(!g_AppMainData.if_same_btname);
101 112 GetDlgItem(IDC_EDIT_BTNAME_END)->EnableWindow(!g_AppMainData.if_same_btname);
102 113 GetDlgItem(IDC_EDIT_BTNAME_HEADER)->EnableWindow(!g_AppMainData.if_same_btname);
  114 +#endif
103 115 }
104 116
105 117 BOOL CSysConfig::OnInitDialog()
... ... @@ -109,15 +121,18 @@ BOOL CSysConfig::OnInitDialog()
109 121 CString strComname,strCommConfiged;
110 122 CDialog::OnInitDialog();
111 123
112   -// } //数据初始化
  124 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
  125 + //数据初始化
113 126 mystrSNHeader.Format("%s",g_AppMainData.SN_head);
114 127 mystrSnStart.Format("%05d",g_AppMainData.SN_cur);
115 128 mystrSnEnd.Format("%05d",g_AppMainData.SN_end);
116   -
  129 +#endif
117 130 mylistCheck.SetCurSel(g_AppMainData.com_config.bcheck);
118 131 mylistDatabit.SetCurSel(3);
119 132 mylistStopbit.SetCurSel(0);
120 133 mylistStreambit.SetCurSel(0);
  134 +
  135 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
121 136 //UI 初始化
122 137 myCheckSameSn.SetCheck(g_AppMainData.if_same_sn);
123 138
... ... @@ -131,15 +146,30 @@ BOOL CSysConfig::OnInitDialog()
131 146 GetDlgItem(IDC_EDIT_BTNAME_START)->EnableWindow(FALSE);
132 147 GetDlgItem(IDC_EDIT_BTNAME_END)->EnableWindow(FALSE);
133 148 GetDlgItem(IDC_EDIT_BTNAME_HEADER)->EnableWindow(FALSE);
134   -
  149 +#endif
135 150
136 151 mylistCheck.EnableWindow(FALSE);
137 152 mylistDatabit.EnableWindow(FALSE);
138 153 mylistStopbit.EnableWindow(FALSE);
139 154 mylistStreambit.EnableWindow(FALSE);
  155 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
140 156 mystrFilePathEar = g_AppMainData.FilePathEar;
141 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 173 UpdateData(FALSE);
144 174
145 175 return TRUE; // return TRUE unless you set the focus to a control
... ... @@ -181,6 +211,7 @@ void CSysConfig::OnBnClickedOk()
181 211 MessageBox("请核对端口配置参数是否有误", "Warning");
182 212 return;
183 213 }
  214 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
184 215 if (!myCheckSameSn.GetCheck())
185 216 {
186 217 if (mystrSnStart.GetLength()<5 ||mystrSnEnd.GetLength()<5 )
... ... @@ -211,6 +242,7 @@ void CSysConfig::OnBnClickedOk()
211 242 g_AppMainData.com_config.cdatabit = mylistDatabit.GetCurSel();
212 243 g_AppMainData.com_config.dstopbit = mylistStopbit.GetCurSel();
213 244 g_AppMainData.com_config.estreambit = mylistStreambit.GetCurSel();
  245 +#endif
214 246 if (mystrFilePathEar == "")
215 247 {
216 248 MessageBox("未选择耳机软件", "Warning");
... ... @@ -219,12 +251,34 @@ void CSysConfig::OnBnClickedOk()
219 251 {
220 252 MessageBox("未选择发射器软件", "Warning");
221 253 }
  254 +#ifdef __TOPWELL_EDIT_SN_ENABLE__
222 255 g_AppMainData.FilePathEar = mystrFilePathEar;
223 256 g_AppMainData.FilePathUsb = mystrFilePathUsb;
224   -
  257 +#endif
225 258 g_pmainapp->SaveConfigs();
226 259
227 260
228 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 80 bool myAllowSave;
81 81 afx_msg void OnBnClickedCheckSameBtname();
82 82 CButton myCheckSameBtname;
  83 + afx_msg void OnBnClickedCheckFlashOneBin();
  84 + CButton mycheckAllOneBin;
  85 + int myintStart;
  86 + int myintEnd;
83 87 };
84 88
85 89 //{{AFX_INSERT_LOCATION}}
... ...
... ... @@ -110,6 +110,10 @@
110 110 #define IDC_STATIC_GROUP_EAR 1148
111 111 #define IDC_STATIC_GROUP_USB 1149
112 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 117 #define IDC_PROGRESS_FLASH0 1200
114 118 #define IDC_PROGRESS_FLASH1 1201
115 119 #define IDC_PROGRESS_FLASH2 1202
... ... @@ -582,7 +586,6 @@
582 586 #define IDC_BUTTON_INIT_COMPORT 2017
583 587 #define IDC_EDIT_BTNAME_START 2017
584 588 #define IDC_EDIT1 2018
585   -#define IDC_EDIT_SN_END2 2018
586 589 #define IDC_EDIT_BTNAME_END 2018
587 590 #define IDC_EDIT_SN_HEADER 2019
588 591 #define IDC_FLASH_READAY 2020
... ... @@ -594,7 +597,7 @@
594 597 #ifndef APSTUDIO_READONLY_SYMBOLS
595 598 #define _APS_NEXT_RESOURCE_VALUE 135
596 599 #define _APS_NEXT_COMMAND_VALUE 32771
597   -#define _APS_NEXT_CONTROL_VALUE 1151
  600 +#define _APS_NEXT_CONTROL_VALUE 1153
598 601 #define _APS_NEXT_SYMED_VALUE 101
599 602 #endif
600 603 #endif
... ...
Please register or login to post a comment