Commit 5011b628ea62c6e3a3a420ef7d5ee0085caf2d24

Authored by xiemeng
1 parent d7d2cf55

update 20210126

1 1 /*.ncb
2 2 /*.aps
  3 +/BlueFlashTool.si4project
... ...
... ... @@ -33,14 +33,26 @@ CBlueFlashToolApp::CBlueFlashToolApp()
33 33
34 34 /////////////////////////////////////////////////////////////////////////////
35 35 // The one and only CBlueFlashToolApp object
  36 +//---------------全局变量定义区
  37 + CBlueFlashToolApp theApp;
  38 + CBlueFlashToolApp *g_pmainapp;
  39 + app_main_data_struct g_AppMainData;
  40 + //CByteArray g_pBufferBinFile[20];
  41 + CIniFile g_globalini;
  42 +//---------------全局变量定义区
  43 +
  44 +
  45 +CString GetCurrPath();
  46 +
  47 +
36 48
37   -CBlueFlashToolApp theApp;
38 49
39 50 /////////////////////////////////////////////////////////////////////////////
40 51 // CBlueFlashToolApp initialization
41 52
42 53 BOOL CBlueFlashToolApp::InitInstance()
43 54 {
  55 + CString strglobalpath;
44 56 AfxEnableControlContainer();
45 57
46 58 // Standard initialization
... ... @@ -49,26 +61,18 @@ BOOL CBlueFlashToolApp::InitInstance()
49 61 // the specific initialization routines you do not need.
50 62
51 63 #ifdef _AFXDLL
52   - Enable3dControls(); // Call this when using MFC in a shared DLL
  64 + //Enable3dControls(); // Call this when using MFC in a shared DLL
53 65 #else
54 66 Enable3dControlsStatic(); // Call this when linking to MFC statically
55 67 #endif
56   - g_AppMainData.if_same_sn = TRUE;
57   - strcpy(g_AppMainData.SN_head, "T");
58   - g_AppMainData.SN_start = 0;
59   - g_AppMainData.SN_end = 0;
60   - g_AppMainData.SN_cur = 0;
61   - g_AppMainData.com_config.aBandrate = 115200;
62   - g_AppMainData.com_config.bcheck = 0;
63   - g_AppMainData.com_config.cdatabit = 8;
64   - g_AppMainData.com_config.dstopbit=1;
65   - g_AppMainData.com_config.estreambit=0;
66   -
67   - for (int i = 0; i < 10; i++)
68   - {
69   - g_AppMainData.ary_myComPortEar[i]=1;
70   - g_AppMainData.ary_myComPortUsb[i]=1;
71   - }
  68 + g_pmainapp = this;
  69 +
  70 + strglobalpath = GetCurrPath() + "Global";
  71 + g_globalini.SetIniFileName(strglobalpath);
  72 + LoadConfigs();
  73 +
  74 + //--------------------------------------------------------数据初始化
  75 +
72 76
73 77
74 78 CBlueFlashToolDlg dlg;
... ... @@ -89,3 +93,138 @@ BOOL CBlueFlashToolApp::InitInstance()
89 93 // application, rather than start the application's message pump.
90 94 return FALSE;
91 95 }
  96 +
  97 +
  98 +
  99 +//获取应用程序的根目录
  100 +//return value:应用程序的根目录
  101 +CString GetCurrPath()
  102 +{
  103 + CString strPath ="";
  104 + char cCurDirectory[_MAX_PATH];
  105 + memset(cCurDirectory,'\0',_MAX_PATH);
  106 + ::GetModuleFileName(NULL, cCurDirectory, _MAX_PATH);
  107 + //GetCurrentDirectory(256, cCurDirectory); //不能使用这个函数,如果中间你调用文件对话框,对改变你的当前路径
  108 + strPath.Format(cCurDirectory);
  109 + CString strAppName =AfxGetApp()->m_pszAppName;
  110 + strAppName+=".exe";
  111 + //把最后的exe文件名去掉
  112 + int length1,length2;
  113 + length1=strPath.GetLength();
  114 + length2=strAppName.GetLength();
  115 + strPath.Delete(length1-length2,length2);
  116 + //strPath.Replace("\\","\\\\");
  117 + return strPath;
  118 +}
  119 +//判断某文件是否存在
  120 +//return value: ture:存在,false:不存在!
  121 +//Parameters:
  122 +//strAbsolutefilePath:文件的绝对路径
  123 +bool IsExistFile(CString strAbsolutefilePath)
  124 +{
  125 + CFileFind findFile;
  126 + //BOOL iFlag = false;
  127 + BOOL iFlag = findFile.FindFile(strAbsolutefilePath);
  128 + return iFlag;
  129 +}
  130 +
  131 +// 加载程序默认配置
  132 +bool CBlueFlashToolApp::LoadConfigs(void)
  133 +{
  134 + g_AppMainData.if_same_sn = g_globalini.ReadBool("SN_Config","SN_same");
  135 + g_AppMainData.SN_head = g_globalini.ReadString("SN_Config","SN_head");
  136 + g_AppMainData.SN_start = g_globalini.ReadInt("SN_Config","SN_start");
  137 + g_AppMainData.SN_end = g_globalini.ReadInt("SN_Config","SN_end");
  138 + g_AppMainData.SN_cur = g_globalini.ReadInt("SN_Config","SN_cur");
  139 +
  140 + g_AppMainData.com_config.aBandrate = g_globalini.ReadInt("UART_Config","波特率");
  141 + g_AppMainData.com_config.bcheck = g_globalini.ReadInt("UART_Config","校验位");
  142 + g_AppMainData.com_config.cdatabit = g_globalini.ReadInt("UART_Config","数据位");
  143 + g_AppMainData.com_config.dstopbit = g_globalini.ReadInt("UART_Config","停止??");
  144 + g_AppMainData.com_config.estreambit = g_globalini.ReadInt("UART_Config","流控制");
  145 +
  146 + g_AppMainData.ary_myComPortEar[0] = g_globalini.ReadInt("UART_Config","ear_port1");
  147 + g_AppMainData.ary_myComPortEar[1] = g_globalini.ReadInt("UART_Config","ear_port2");
  148 + g_AppMainData.ary_myComPortEar[2] = g_globalini.ReadInt("UART_Config","ear_port3");
  149 + g_AppMainData.ary_myComPortEar[3] = g_globalini.ReadInt("UART_Config","ear_port4");
  150 + g_AppMainData.ary_myComPortEar[4] = g_globalini.ReadInt("UART_Config","ear_port5");
  151 + g_AppMainData.ary_myComPortEar[5] = g_globalini.ReadInt("UART_Config","ear_port6");
  152 + g_AppMainData.ary_myComPortEar[6] = g_globalini.ReadInt("UART_Config","ear_port7");
  153 + g_AppMainData.ary_myComPortEar[7] = g_globalini.ReadInt("UART_Config","ear_port8");
  154 + g_AppMainData.ary_myComPortEar[8] = g_globalini.ReadInt("UART_Config","ear_port9");
  155 + g_AppMainData.ary_myComPortEar[9] = g_globalini.ReadInt("UART_Config","ear_port10");
  156 + g_AppMainData.ary_myComPortUsb[0] = g_globalini.ReadInt("UART_Config","usb_port1");
  157 + g_AppMainData.ary_myComPortUsb[1] = g_globalini.ReadInt("UART_Config","usb_port2");
  158 + g_AppMainData.ary_myComPortUsb[2] = g_globalini.ReadInt("UART_Config","usb_port3");
  159 + g_AppMainData.ary_myComPortUsb[3] = g_globalini.ReadInt("UART_Config","usb_port4");
  160 + g_AppMainData.ary_myComPortUsb[4] = g_globalini.ReadInt("UART_Config","usb_port5");
  161 + g_AppMainData.ary_myComPortUsb[5] = g_globalini.ReadInt("UART_Config","usb_port6");
  162 + g_AppMainData.ary_myComPortUsb[6] = g_globalini.ReadInt("UART_Config","usb_port7");
  163 + g_AppMainData.ary_myComPortUsb[7] = g_globalini.ReadInt("UART_Config","usb_port8");
  164 + g_AppMainData.ary_myComPortUsb[8] = g_globalini.ReadInt("UART_Config","usb_port9");
  165 + g_AppMainData.ary_myComPortUsb[9] = g_globalini.ReadInt("UART_Config","usb_port10");
  166 + g_AppMainData.FilePathEar= g_globalini.ReadString("BinFilePath","EarBin");
  167 + g_AppMainData.FilePathUsb= g_globalini.ReadString("BinFilePath","UsbBin");
  168 +
  169 +
  170 + return true;
  171 +}
  172 +
  173 +bool CBlueFlashToolApp::SaveConfigs(void)
  174 +{
  175 + // g_AppMainData.if_same_sn = TRUE;
  176 + // strcpy(g_AppMainData.SN_head, "T");
  177 + // g_AppMainData.SN_start = 0;
  178 + // g_AppMainData.SN_end = 0;
  179 + // g_AppMainData.SN_cur = 0;
  180 + // g_AppMainData.com_config.aBandrate = 115200;
  181 + // g_AppMainData.com_config.bcheck = 0;
  182 + // g_AppMainData.com_config.cdatabit = 8;
  183 + // g_AppMainData.com_config.dstopbit=1;
  184 + // g_AppMainData.com_config.estreambit=0;
  185 + //
  186 + // for (int i = 0; i < 10; i++)
  187 + // {
  188 + // g_AppMainData.ary_myComPortEar[i]=-1;
  189 + // g_AppMainData.ary_myComPortUsb[i]=-1;
  190 + // }
  191 + // //--------------------------------------------------------数据初始化
  192 +
  193 + g_globalini.WriteBool("SN_Config","SN_same",g_AppMainData.if_same_sn);
  194 + g_globalini.WriteString("SN_Config","SN_head",g_AppMainData.SN_head);
  195 + g_globalini.WriteInt("SN_Config","SN_start",g_AppMainData.SN_start);
  196 + g_globalini.WriteInt("SN_Config","SN_end",g_AppMainData.SN_end);
  197 + g_globalini.WriteInt("SN_Config","SN_cur",g_AppMainData.SN_cur);
  198 +
  199 + g_globalini.WriteInt("UART_Config","波特率",g_AppMainData.com_config.aBandrate);
  200 + g_globalini.WriteInt("UART_Config","校验位",g_AppMainData.com_config.bcheck);
  201 + g_globalini.WriteInt("UART_Config","数据位",g_AppMainData.com_config.cdatabit);
  202 + g_globalini.WriteInt("UART_Config","停止位",g_AppMainData.com_config.dstopbit);
  203 + g_globalini.WriteInt("UART_Config","流控制",g_AppMainData.com_config.estreambit);
  204 +
  205 + g_globalini.WriteInt("UART_Config","ear_port1",g_AppMainData.ary_myComPortEar[0]);
  206 + g_globalini.WriteInt("UART_Config","ear_port2",g_AppMainData.ary_myComPortEar[1]);
  207 + g_globalini.WriteInt("UART_Config","ear_port3",g_AppMainData.ary_myComPortEar[2]);
  208 + g_globalini.WriteInt("UART_Config","ear_port4",g_AppMainData.ary_myComPortEar[3]);
  209 + g_globalini.WriteInt("UART_Config","ear_port5",g_AppMainData.ary_myComPortEar[4]);
  210 + g_globalini.WriteInt("UART_Config","ear_port6",g_AppMainData.ary_myComPortEar[5]);
  211 + g_globalini.WriteInt("UART_Config","ear_port7",g_AppMainData.ary_myComPortEar[6]);
  212 + g_globalini.WriteInt("UART_Config","ear_port8",g_AppMainData.ary_myComPortEar[7]);
  213 + g_globalini.WriteInt("UART_Config","ear_port9",g_AppMainData.ary_myComPortEar[8]);
  214 + g_globalini.WriteInt("UART_Config","ear_port10",g_AppMainData.ary_myComPortEar[9]);
  215 + g_globalini.WriteInt("UART_Config","usb_port1",g_AppMainData.ary_myComPortUsb[0]);
  216 + g_globalini.WriteInt("UART_Config","usb_port2",g_AppMainData.ary_myComPortUsb[1]);
  217 + g_globalini.WriteInt("UART_Config","usb_port3",g_AppMainData.ary_myComPortUsb[2]);
  218 + g_globalini.WriteInt("UART_Config","usb_port4",g_AppMainData.ary_myComPortUsb[3]);
  219 + g_globalini.WriteInt("UART_Config","usb_port5",g_AppMainData.ary_myComPortUsb[4]);
  220 + g_globalini.WriteInt("UART_Config","usb_port6",g_AppMainData.ary_myComPortUsb[5]);
  221 + g_globalini.WriteInt("UART_Config","usb_port7",g_AppMainData.ary_myComPortUsb[6]);
  222 + g_globalini.WriteInt("UART_Config","usb_port8",g_AppMainData.ary_myComPortUsb[7]);
  223 + g_globalini.WriteInt("UART_Config","usb_port9",g_AppMainData.ary_myComPortUsb[8]);
  224 + g_globalini.WriteInt("UART_Config","usb_port10",g_AppMainData.ary_myComPortUsb[9]);
  225 +
  226 + g_globalini.WriteString("BinFilePath","EarBin",g_AppMainData.FilePathEar);
  227 + g_globalini.WriteString("BinFilePath","UsbBin",g_AppMainData.FilePathUsb);
  228 +
  229 + return true;
  230 +}
... ...
... ... @@ -13,16 +13,58 @@
13 13 #endif
14 14
15 15 #include "resource.h" // main symbols
  16 +#include "IniFile.h"
  17 +
  18 +
16 19
17 20 /////////////////////////////////////////////////////////////////////////////
18 21 // CBlueFlashToolApp:
19 22 // See BlueFlashTool.cpp for the implementation of this class
20 23 //
21 24
  25 +
  26 +
  27 +
  28 +
  29 +#define MAX_PATH 260
  30 +
  31 +
  32 +typedef struct
  33 +{
  34 + int aBandrate;
  35 + char bcheck;
  36 + char cdatabit;
  37 + char dstopbit;
  38 + char estreambit;
  39 +}com_config_struct;
  40 +typedef struct
  41 +{
  42 + short ary_myComPortEar[10];
  43 + short ary_myComPortUsb[10];
  44 + BOOL if_flashEar[10];
  45 + BOOL if_flashUsb[10];
  46 + short int_myComPortDebug;
  47 + com_config_struct com_config;
  48 + BOOL if_same_sn;
  49 + CString SN_head;
  50 + int SN_start;
  51 + int SN_end;
  52 + int SN_cur;
  53 + int int_ResendTime;
  54 + CString FilePathUsb;
  55 + CString FilePathEar;
  56 +}app_main_data_struct;
  57 +
  58 +extern app_main_data_struct g_AppMainData;
  59 +extern CIniFile g_globalini;
  60 +
  61 +
22 62 class CBlueFlashToolApp : public CWinApp
23 63 {
24 64 public:
25 65 CBlueFlashToolApp();
  66 + bool LoadConfigs(void);
  67 + bool SaveConfigs(void);
26 68
27 69 // Overrides
28 70 // ClassWizard generated virtual function overrides
... ... @@ -38,9 +80,10 @@ public:
38 80 // DO NOT EDIT what you see in these blocks of generated code !
39 81 //}}AFX_MSG
40 82 DECLARE_MESSAGE_MAP()
  83 + // ¼ÓÔØ³ÌÐòĬÈÏÅäÖÃ
41 84 };
42 85
43   -
  86 +extern CBlueFlashToolApp *g_pmainapp;
44 87 /////////////////////////////////////////////////////////////////////////////
45 88
46 89 //{{AFX_INSERT_LOCATION}}
... ...
1   -//Microsoft Developer Studio generated resource script.
  1 +// Microsoft Visual C++ generated resource script.
2 2 //
3 3 #include "resource.h"
4 4
... ... @@ -27,18 +27,18 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
27 27 // TEXTINCLUDE
28 28 //
29 29
30   -1 TEXTINCLUDE DISCARDABLE
  30 +1 TEXTINCLUDE
31 31 BEGIN
32 32 "resource.h\0"
33 33 END
34 34
35   -2 TEXTINCLUDE DISCARDABLE
  35 +2 TEXTINCLUDE
36 36 BEGIN
37 37 "#include ""afxres.h""\r\n"
38 38 "\0"
39 39 END
40 40
41   -3 TEXTINCLUDE DISCARDABLE
  41 +3 TEXTINCLUDE
42 42 BEGIN
43 43 "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
44 44 "#define _AFX_NO_OLE_RESOURCES\r\n"
... ... @@ -66,7 +66,7 @@ END
66 66
67 67 // Icon with lowest ID value placed first to ensure application icon
68 68 // remains consistent on all systems.
69   -IDR_MAINFRAME ICON DISCARDABLE "res\\BlueFlashTool.ico"
  69 +IDR_MAINFRAME ICON "res\\BlueFlashTool.ico"
70 70
71 71 /////////////////////////////////////////////////////////////////////////////
72 72 //
... ... @@ -74,273 +74,185 @@ IDR_MAINFRAME ICON DISCARDABLE "res\\BlueFlashTool.ico"
74 74 //
75 75
76 76 IDD_BLUEFLASHTOOL_DIALOG DIALOGEX 0, 0, 552, 367
77   -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
  77 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
78 78 EXSTYLE WS_EX_APPWINDOW
79 79 CAPTION "BlueFlashTool"
80 80 FONT 9, "宋体", 0, 0, 0x1
81 81 BEGIN
82 82 GROUPBOX "SN:000000000000",IDC_STATIC_GROUP01,0,1,190,51
83   - CONTROL "耳机",IDC_CHECK_EAR01,"Button",BS_AUTOCHECKBOX |
84   - WS_TABSTOP,8,15,32,10
85   - CONTROL "发射器",IDC_CHECK_USB01,"Button",BS_AUTOCHECKBOX |
86   - WS_TABSTOP,8,34,40,10
87   - CONTROL "Progress1",IDC_PROGRESS_EAR01,"msctls_progress32",
88   - PBS_SMOOTH | WS_BORDER,57,15,72,14
89   - CONTROL "Progress1",IDC_PROGRESS_USB01,"msctls_progress32",
90   - PBS_SMOOTH | WS_BORDER,57,34,72,14
  83 + CONTROL "耳机",IDC_CHECK_EAR1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,15,32,10
  84 + CONTROL "发射器",IDC_CHECK_USB1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,34,40,10
  85 + CONTROL "Progress1",IDC_PROGRESS_EAR01,"msctls_progress32",PBS_SMOOTH | WS_BORDER,57,15,72,14
  86 + CONTROL "Progress1",IDC_PROGRESS_USB01,"msctls_progress32",PBS_SMOOTH | WS_BORDER,57,34,72,14
91 87 PUSHBUTTON "开始",IDC_BUTTON_START_EAR01,132,15,50,14
92 88 PUSHBUTTON "开始",IDC_BUTTON_START_USB01,132,34,50,14
93 89 GROUPBOX "SN:000000000000",IDC_STATIC_GROUP2,0,60,190,51
94   - CONTROL "耳机",IDC_CHECK_EAR2,"Button",BS_AUTOCHECKBOX |
95   - WS_TABSTOP,8,74,32,10
96   - CONTROL "发射器",IDC_CHECK_USB2,"Button",BS_AUTOCHECKBOX |
97   - WS_TABSTOP,8,93,40,10
98   - CONTROL "Progress1",IDC_PROGRESS_EAR2,"msctls_progress32",
99   - PBS_SMOOTH | WS_BORDER,57,74,72,14
100   - CONTROL "Progress1",IDC_PROGRESS_USB2,"msctls_progress32",
101   - PBS_SMOOTH | WS_BORDER,57,93,72,14
  90 + CONTROL "耳机",IDC_CHECK_EAR2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,74,32,10
  91 + CONTROL "发射器",IDC_CHECK_USB2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,93,40,10
  92 + CONTROL "Progress1",IDC_PROGRESS_EAR2,"msctls_progress32",PBS_SMOOTH | WS_BORDER,57,74,72,14
  93 + CONTROL "Progress1",IDC_PROGRESS_USB2,"msctls_progress32",PBS_SMOOTH | WS_BORDER,57,93,72,14
102 94 PUSHBUTTON "开始",IDC_BUTTON_START_EAR2,132,74,50,14
103 95 PUSHBUTTON "开始",IDC_BUTTON_START_USB2,132,93,50,14
104 96 GROUPBOX "SN:000000000000",IDC_STATIC_GROUP3,0,120,190,51
105   - CONTROL "耳机",IDC_CHECK_EAR3,"Button",BS_AUTOCHECKBOX |
106   - WS_TABSTOP,8,134,32,10
107   - CONTROL "发射器",IDC_CHECK_USB3,"Button",BS_AUTOCHECKBOX |
108   - WS_TABSTOP,8,153,40,10
109   - CONTROL "Progress1",IDC_PROGRESS_EAR3,"msctls_progress32",
110   - PBS_SMOOTH | WS_BORDER,57,134,72,14
111   - CONTROL "Progress1",IDC_PROGRESS_USB3,"msctls_progress32",
112   - PBS_SMOOTH | WS_BORDER,57,153,72,14
  97 + CONTROL "耳机",IDC_CHECK_EAR3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,134,32,10
  98 + CONTROL "发射器",IDC_CHECK_USB3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,153,40,10
  99 + CONTROL "Progress1",IDC_PROGRESS_EAR3,"msctls_progress32",PBS_SMOOTH | WS_BORDER,57,134,72,14
  100 + CONTROL "Progress1",IDC_PROGRESS_USB3,"msctls_progress32",PBS_SMOOTH | WS_BORDER,57,153,72,14
113 101 PUSHBUTTON "开始",IDC_BUTTON_START_EAR3,132,134,50,14
114 102 PUSHBUTTON "开始",IDC_BUTTON_START_USB3,132,153,50,14
115 103 GROUPBOX "SN:000000000000",IDC_STATIC_GROUP4,0,180,190,51
116   - CONTROL "耳机",IDC_CHECK_EAR4,"Button",BS_AUTOCHECKBOX |
117   - WS_TABSTOP,8,194,32,10
118   - CONTROL "发射器",IDC_CHECK_USB4,"Button",BS_AUTOCHECKBOX |
119   - WS_TABSTOP,8,213,40,10
120   - CONTROL "Progress1",IDC_PROGRESS_EAR4,"msctls_progress32",
121   - PBS_SMOOTH | WS_BORDER,57,194,72,14
122   - CONTROL "Progress1",IDC_PROGRESS_USB4,"msctls_progress32",
123   - PBS_SMOOTH | WS_BORDER,57,213,72,14
  104 + CONTROL "耳机",IDC_CHECK_EAR4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,194,32,10
  105 + CONTROL "发射器",IDC_CHECK_USB4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,213,40,10
  106 + CONTROL "Progress1",IDC_PROGRESS_EAR4,"msctls_progress32",PBS_SMOOTH | WS_BORDER,57,194,72,14
  107 + CONTROL "Progress1",IDC_PROGRESS_USB4,"msctls_progress32",PBS_SMOOTH | WS_BORDER,57,213,72,14
124 108 PUSHBUTTON "开始",IDC_BUTTON_START_EAR4,132,194,50,14
125 109 PUSHBUTTON "开始",IDC_BUTTON_START_USB4,132,213,50,14
126 110 GROUPBOX "SN:000000000000",IDC_STATIC_GROUP5,0,240,190,51
127   - CONTROL "耳机",IDC_CHECK_EAR5,"Button",BS_AUTOCHECKBOX |
128   - WS_TABSTOP,8,254,32,10
129   - CONTROL "发射器",IDC_CHECK_USB5,"Button",BS_AUTOCHECKBOX |
130   - WS_TABSTOP,8,273,40,10
131   - CONTROL "Progress1",IDC_PROGRESS_EAR5,"msctls_progress32",
132   - PBS_SMOOTH | WS_BORDER,57,254,72,14
133   - CONTROL "Progress1",IDC_PROGRESS_USB5,"msctls_progress32",
134   - PBS_SMOOTH | WS_BORDER,57,273,72,14
  111 + CONTROL "耳机",IDC_CHECK_EAR5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,254,32,10
  112 + CONTROL "发射器",IDC_CHECK_USB5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,273,40,10
  113 + CONTROL "Progress1",IDC_PROGRESS_EAR5,"msctls_progress32",PBS_SMOOTH | WS_BORDER,57,254,72,14
  114 + CONTROL "Progress1",IDC_PROGRESS_USB5,"msctls_progress32",PBS_SMOOTH | WS_BORDER,57,273,72,14
135 115 PUSHBUTTON "开始",IDC_BUTTON_START_EAR5,132,254,50,14
136 116 PUSHBUTTON "开始",IDC_BUTTON_START_USB5,132,273,50,14
137 117 GROUPBOX "SN:000000000000",IDC_STATIC_GROUP6,195,0,190,51
138   - CONTROL "耳机",IDC_CHECK_EAR6,"Button",BS_AUTOCHECKBOX |
139   - WS_TABSTOP,203,14,32,10
140   - CONTROL "发射器",IDC_CHECK_USB6,"Button",BS_AUTOCHECKBOX |
141   - WS_TABSTOP,203,33,40,10
142   - CONTROL "Progress1",IDC_PROGRESS_EAR6,"msctls_progress32",
143   - PBS_SMOOTH | WS_BORDER,253,14,72,14
144   - CONTROL "Progress1",IDC_PROGRESS_USB6,"msctls_progress32",
145   - PBS_SMOOTH | WS_BORDER,253,33,72,14
  118 + CONTROL "耳机",IDC_CHECK_EAR6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,14,32,10
  119 + CONTROL "发射器",IDC_CHECK_USB6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,33,40,10
  120 + CONTROL "Progress1",IDC_PROGRESS_EAR6,"msctls_progress32",PBS_SMOOTH | WS_BORDER,253,14,72,14
  121 + CONTROL "Progress1",IDC_PROGRESS_USB6,"msctls_progress32",PBS_SMOOTH | WS_BORDER,253,33,72,14
146 122 PUSHBUTTON "开始",IDC_BUTTON_START_EAR6,329,14,50,14
147 123 PUSHBUTTON "开始",IDC_BUTTON_START_USB6,329,33,50,14
148 124 GROUPBOX "SN:000000000000",IDC_STATIC_GROUP7,195,60,190,51
149   - CONTROL "耳机",IDC_CHECK_EAR7,"Button",BS_AUTOCHECKBOX |
150   - WS_TABSTOP,203,74,32,10
151   - CONTROL "发射器",IDC_CHECK_USB7,"Button",BS_AUTOCHECKBOX |
152   - WS_TABSTOP,203,93,40,10
153   - CONTROL "Progress1",IDC_PROGRESS_EAR7,"msctls_progress32",
154   - PBS_SMOOTH | WS_BORDER,253,74,72,14
155   - CONTROL "Progress1",IDC_PROGRESS_USB7,"msctls_progress32",
156   - PBS_SMOOTH | WS_BORDER,253,93,72,14
  125 + CONTROL "耳机",IDC_CHECK_EAR7,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,74,32,10
  126 + CONTROL "发射器",IDC_CHECK_USB7,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,93,40,10
  127 + CONTROL "Progress1",IDC_PROGRESS_EAR7,"msctls_progress32",PBS_SMOOTH | WS_BORDER,253,74,72,14
  128 + CONTROL "Progress1",IDC_PROGRESS_USB7,"msctls_progress32",PBS_SMOOTH | WS_BORDER,253,93,72,14
157 129 PUSHBUTTON "开始",IDC_BUTTON_START_EAR7,329,74,50,14
158 130 PUSHBUTTON "开始",IDC_BUTTON_START_USB7,329,93,50,14
159 131 GROUPBOX "SN:000000000000",IDC_STATIC_GROUP8,195,120,190,51
160   - CONTROL "耳机",IDC_CHECK_EAR8,"Button",BS_AUTOCHECKBOX |
161   - WS_TABSTOP,203,134,32,10
162   - CONTROL "发射器",IDC_CHECK_USB8,"Button",BS_AUTOCHECKBOX |
163   - WS_TABSTOP,203,153,40,10
164   - CONTROL "Progress1",IDC_PROGRESS_EAR8,"msctls_progress32",
165   - PBS_SMOOTH | WS_BORDER,253,134,72,14
166   - CONTROL "Progress1",IDC_PROGRESS_USB8,"msctls_progress32",
167   - PBS_SMOOTH | WS_BORDER,253,153,72,14
  132 + CONTROL "耳机",IDC_CHECK_EAR8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,134,32,10
  133 + CONTROL "发射器",IDC_CHECK_USB8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,153,40,10
  134 + CONTROL "Progress1",IDC_PROGRESS_EAR8,"msctls_progress32",PBS_SMOOTH | WS_BORDER,253,134,72,14
  135 + CONTROL "Progress1",IDC_PROGRESS_USB8,"msctls_progress32",PBS_SMOOTH | WS_BORDER,253,153,72,14
168 136 PUSHBUTTON "开始",IDC_BUTTON_START_EAR8,329,134,50,14
169 137 PUSHBUTTON "开始",IDC_BUTTON_START_USB8,329,153,50,14
170 138 GROUPBOX "SN:000000000000",IDC_STATIC_GROUP9,195,180,190,51
171   - CONTROL "耳机",IDC_CHECK_EAR9,"Button",BS_AUTOCHECKBOX |
172   - WS_TABSTOP,203,194,32,10
173   - CONTROL "发射器",IDC_CHECK_USB9,"Button",BS_AUTOCHECKBOX |
174   - WS_TABSTOP,203,213,40,10
175   - CONTROL "Progress1",IDC_PROGRESS_EAR9,"msctls_progress32",
176   - PBS_SMOOTH | WS_BORDER,253,194,72,14
177   - CONTROL "Progress1",IDC_PROGRESS_USB9,"msctls_progress32",
178   - PBS_SMOOTH | WS_BORDER,253,213,72,14
  139 + CONTROL "耳机",IDC_CHECK_EAR9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,194,32,10
  140 + CONTROL "发射器",IDC_CHECK_USB9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,213,40,10
  141 + CONTROL "Progress1",IDC_PROGRESS_EAR9,"msctls_progress32",PBS_SMOOTH | WS_BORDER,253,194,72,14
  142 + CONTROL "Progress1",IDC_PROGRESS_USB9,"msctls_progress32",PBS_SMOOTH | WS_BORDER,253,213,72,14
179 143 PUSHBUTTON "开始",IDC_BUTTON_START_EAR9,329,194,50,14
180 144 PUSHBUTTON "开始",IDC_BUTTON_START_USB9,329,213,50,14
181 145 GROUPBOX "SN:000000000000",IDC_STATIC_GROUP10,195,240,190,51
182   - CONTROL "耳机",IDC_CHECK_EAR10,"Button",BS_AUTOCHECKBOX |
183   - WS_TABSTOP,203,254,32,10
184   - CONTROL "发射器",IDC_CHECK_USB10,"Button",BS_AUTOCHECKBOX |
185   - WS_TABSTOP,203,273,40,10
186   - CONTROL "Progress1",IDC_PROGRESS_EAR10,"msctls_progress32",
187   - PBS_SMOOTH | WS_BORDER,253,254,72,14
188   - CONTROL "Progress1",IDC_PROGRESS_USB10,"msctls_progress32",
189   - PBS_SMOOTH | WS_BORDER,253,273,72,14
  146 + CONTROL "耳机",IDC_CHECK_EAR10,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,254,32,10
  147 + CONTROL "发射器",IDC_CHECK_USB10,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,273,40,10
  148 + CONTROL "Progress1",IDC_PROGRESS_EAR10,"msctls_progress32",PBS_SMOOTH | WS_BORDER,253,254,72,14
  149 + CONTROL "Progress1",IDC_PROGRESS_USB10,"msctls_progress32",PBS_SMOOTH | WS_BORDER,253,273,72,14
190 150 PUSHBUTTON "开始",IDC_BUTTON_START_EAR10,329,254,50,14
191 151 PUSHBUTTON "开始",IDC_BUTTON_START_USB10,329,273,50,14
192   - PUSHBUTTON "全部开始",IDC_START_ALL,10,300,50,14
193   - PUSHBUTTON "全部停止",IDC_STOP_ALL,75,300,50,14
  152 + PUSHBUTTON "全部开始",IDC_START_ALL,129,318,50,20
  153 + PUSHBUTTON "全部停止",IDC_STOP_ALL,195,318,50,20
194 154 PUSHBUTTON "参数设置",IDC_BUTTON_SETTING,326,300,50,14
195   - CONTROL "",IDC_MSCOMM0,"{648A5600-2C6E-101B-82B6-000000000014}",
196   - WS_TABSTOP,0,342,25,25
197   - CONTROL "",IDC_MSCOMM1,"{648A5600-2C6E-101B-82B6-000000000014}",
198   - WS_TABSTOP,26,342,25,25
199   - CONTROL "",IDC_MSCOMM2,"{648A5600-2C6E-101B-82B6-000000000014}",
200   - WS_TABSTOP,52,342,25,25
201   - CONTROL "",IDC_MSCOMM3,"{648A5600-2C6E-101B-82B6-000000000014}",
202   - WS_TABSTOP,78,342,25,25
203   - CONTROL "",IDC_MSCOMM4,"{648A5600-2C6E-101B-82B6-000000000014}",
204   - WS_TABSTOP,104,342,25,25
205   - CONTROL "",IDC_MSCOMM5,"{648A5600-2C6E-101B-82B6-000000000014}",
206   - WS_TABSTOP,130,342,25,25
207   - CONTROL "",IDC_MSCOMM6,"{648A5600-2C6E-101B-82B6-000000000014}",
208   - WS_TABSTOP,156,342,25,25
209   - CONTROL "",IDC_MSCOMM7,"{648A5600-2C6E-101B-82B6-000000000014}",
210   - WS_TABSTOP,182,342,25,25
211   - CONTROL "",IDC_MSCOMM8,"{648A5600-2C6E-101B-82B6-000000000014}",
212   - WS_TABSTOP,208,342,25,25
213   - CONTROL "",IDC_MSCOMM9,"{648A5600-2C6E-101B-82B6-000000000014}",
214   - WS_TABSTOP,234,342,25,25
215   - CONTROL "",IDC_MSCOMM10,"{648A5600-2C6E-101B-82B6-000000000014}",
216   - WS_TABSTOP,260,342,25,25
217   - CONTROL "",IDC_MSCOMM11,"{648A5600-2C6E-101B-82B6-000000000014}",
218   - WS_TABSTOP,286,342,25,25
219   - CONTROL "",IDC_MSCOMM12,"{648A5600-2C6E-101B-82B6-000000000014}",
220   - WS_TABSTOP,312,342,25,25
221   - CONTROL "",IDC_MSCOMM13,"{648A5600-2C6E-101B-82B6-000000000014}",
222   - WS_TABSTOP,338,342,25,25
223   - CONTROL "",IDC_MSCOMM14,"{648A5600-2C6E-101B-82B6-000000000014}",
224   - WS_TABSTOP,364,342,25,25
225   - CONTROL "",IDC_MSCOMM15,"{648A5600-2C6E-101B-82B6-000000000014}",
226   - WS_TABSTOP,390,342,25,25
227   - CONTROL "",IDC_MSCOMM16,"{648A5600-2C6E-101B-82B6-000000000014}",
228   - WS_TABSTOP,416,342,25,25
229   - CONTROL "",IDC_MSCOMM17,"{648A5600-2C6E-101B-82B6-000000000014}",
230   - WS_TABSTOP,442,342,25,25
231   - CONTROL "",IDC_MSCOMM18,"{648A5600-2C6E-101B-82B6-000000000014}",
232   - WS_TABSTOP,468,342,25,25
233   - CONTROL "",IDC_MSCOMM19,"{648A5600-2C6E-101B-82B6-000000000014}",
234   - WS_TABSTOP,494,342,25,25
235   - CONTROL "",IDC_MSCOMM20,"{648A5600-2C6E-101B-82B6-000000000014}",
236   - WS_TABSTOP,520,342,25,25
237   - LISTBOX IDC_DEBUG_MESSAGE,390,0,160,335,LBS_SORT |
238   - LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
  155 + CONTROL "",IDC_MSCOMM0,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,0,342,25,25
  156 + CONTROL "",IDC_MSCOMM1,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,26,342,25,25
  157 + CONTROL "",IDC_MSCOMM2,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,52,342,25,25
  158 + CONTROL "",IDC_MSCOMM3,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,78,342,25,25
  159 + CONTROL "",IDC_MSCOMM4,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,104,342,25,25
  160 + CONTROL "",IDC_MSCOMM5,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,130,342,25,25
  161 + CONTROL "",IDC_MSCOMM6,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,156,342,25,25
  162 + CONTROL "",IDC_MSCOMM7,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,182,342,25,25
  163 + CONTROL "",IDC_MSCOMM8,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,208,342,25,25
  164 + CONTROL "",IDC_MSCOMM9,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,234,342,25,25
  165 + CONTROL "",IDC_MSCOMM10,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,260,342,25,25
  166 + CONTROL "",IDC_MSCOMM11,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,286,342,25,25
  167 + CONTROL "",IDC_MSCOMM12,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,312,342,25,25
  168 + CONTROL "",IDC_MSCOMM13,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,338,342,25,25
  169 + CONTROL "",IDC_MSCOMM14,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,364,342,25,25
  170 + CONTROL "",IDC_MSCOMM15,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,390,342,25,25
  171 + CONTROL "",IDC_MSCOMM16,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,416,342,25,25
  172 + CONTROL "",IDC_MSCOMM17,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,442,342,25,25
  173 + CONTROL "",IDC_MSCOMM18,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,468,342,25,25
  174 + CONTROL "",IDC_MSCOMM19,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,494,342,25,25
  175 + CONTROL "",IDC_MSCOMM20,"{648A5600-2C6E-101B-82B6-000000000014}",WS_TABSTOP,520,342,25,25
  176 + LISTBOX IDC_DEBUG_MESSAGE,390,0,160,335,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
  177 + PUSHBUTTON "设备初始化",IDC_BUTTON_INIT_COMPORT,266,300,50,14
239 178 END
240 179
241   -IDD_SYSTEM_CONFIG DIALOG DISCARDABLE 0, 0, 289, 235
242   -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
  180 +IDD_SYSTEM_CONFIG DIALOGEX 0, 0, 289, 235
  181 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
243 182 CAPTION "Dialog"
244   -FONT 10, "System"
  183 +FONT 10, "System", 0, 0, 0x0
245 184 BEGIN
246 185 GROUPBOX "SN号设置",IDC_STATIC,0,0,120,60
247   - CONTROL "固定SN号",IDC_CHECK_SAME_SN,"Button",BS_AUTOCHECKBOX |
248   - WS_TABSTOP,5,10,50,10
249   - LTEXT "起始ID",IDC_STATIC,5,21,24,12,SS_CENTERIMAGE
250   - LTEXT "结束ID",IDC_STATIC,5,35,24,12,SS_CENTERIMAGE
251   - EDITTEXT IDC_EDIT_SN_START,40,21,75,12,ES_AUTOHSCROLL
252   - EDITTEXT IDC_EDIT_SN_END,40,35,75,12,ES_AUTOHSCROLL
  186 + CONTROL "固定SN号",IDC_CHECK_SAME_SN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,10,50,10
  187 + LTEXT "起始ID从",IDC_STATIC,5,34,24,12,SS_CENTERIMAGE
  188 + EDITTEXT IDC_EDIT_SN_START,32,35,32,12,ES_AUTOHSCROLL
  189 + EDITTEXT IDC_EDIT_SN_END,83,35,32,12,ES_AUTOHSCROLL
253 190 GROUPBOX "COM口配置",IDC_STATIC,0,65,120,100
254 191 LTEXT "波特率",IDC_STATIC,5,80,35,8,SS_CENTERIMAGE
255 192 LTEXT "校验位",IDC_STATIC,5,97,35,8,SS_CENTERIMAGE
256 193 LTEXT "数据位",IDC_STATIC,5,114,35,8,SS_CENTERIMAGE
257 194 LTEXT "停止位",IDC_STATIC,5,131,35,8,SS_CENTERIMAGE
258 195 LTEXT "流控制",IDC_STATIC,5,148,35,8,SS_CENTERIMAGE
259   - COMBOBOX IDC_COMBO_BAND,50,80,65,235,CBS_DROPDOWN | WS_VSCROLL |
260   - WS_TABSTOP
261   - COMBOBOX IDC_COMBO_CHECK,50,97,65,218,CBS_DROPDOWNLIST |
262   - WS_VSCROLL | WS_TABSTOP
263   - COMBOBOX IDC_COMBO_DATABIT,50,114,65,211,CBS_DROPDOWNLIST |
264   - WS_VSCROLL | WS_TABSTOP
265   - COMBOBOX IDC_COMBO_STOPBIT,50,131,65,209,CBS_DROPDOWNLIST |
266   - WS_VSCROLL | WS_TABSTOP
267   - COMBOBOX IDC_COMBO_STEAM,50,148,65,182,CBS_DROPDOWNLIST |
268   - WS_VSCROLL | WS_TABSTOP
269   - LTEXT "说明:ID后五位必须是数字",IDC_STATIC,5,50,90,8
  196 + COMBOBOX IDC_COMBO_BAND,50,80,65,235,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
  197 + COMBOBOX IDC_COMBO_CHECK,50,97,65,218,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
  198 + COMBOBOX IDC_COMBO_DATABIT,50,114,65,211,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
  199 + COMBOBOX IDC_COMBO_STOPBIT,50,131,65,209,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
  200 + COMBOBOX IDC_COMBO_STEAM,50,148,65,182,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
  201 + LTEXT "说明:ID五位必须是数字",IDC_STATIC,5,50,82,8
270 202 GROUPBOX "Static",IDC_STATIC,130,0,155,165
271 203 LTEXT "1: 耳机",IDC_STATIC,135,10,29,12,SS_CENTERIMAGE
272   - COMBOBOX IDC_COMPORT_EAR01,168,10,35,150,CBS_DROPDOWNLIST |
273   - WS_VSCROLL | WS_TABSTOP
  204 + COMBOBOX IDC_COMPORT_EAR01,168,10,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
274 205 LTEXT "发射器",IDC_STATIC,207,10,17,12,SS_CENTERIMAGE
275   - COMBOBOX IDC_COMPORT_USB01,232,10,35,150,CBS_DROPDOWNLIST |
276   - WS_VSCROLL | WS_TABSTOP
  206 + COMBOBOX IDC_COMPORT_USB01,232,10,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
277 207 LTEXT "2: 耳机",IDC_STATIC,135,25,29,12,SS_CENTERIMAGE
278   - COMBOBOX IDC_COMPORT_EAR02,168,25,35,150,CBS_DROPDOWNLIST |
279   - WS_VSCROLL | WS_TABSTOP
  208 + COMBOBOX IDC_COMPORT_EAR02,168,25,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
280 209 LTEXT "发射器",IDC_STATIC,207,25,17,12,SS_CENTERIMAGE
281   - COMBOBOX IDC_COMPORT_USB02,232,25,35,150,CBS_DROPDOWNLIST |
282   - WS_VSCROLL | WS_TABSTOP
  210 + COMBOBOX IDC_COMPORT_USB02,232,25,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
283 211 LTEXT "3: 耳机",IDC_STATIC,135,40,29,12,SS_CENTERIMAGE
284   - COMBOBOX IDC_COMPORT_EAR03,168,40,35,150,CBS_DROPDOWNLIST |
285   - WS_VSCROLL | WS_TABSTOP
  212 + COMBOBOX IDC_COMPORT_EAR03,168,40,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
286 213 LTEXT "发射器",IDC_STATIC,207,40,17,12,SS_CENTERIMAGE
287   - COMBOBOX IDC_COMPORT_USB03,232,40,35,150,CBS_DROPDOWNLIST |
288   - WS_VSCROLL | WS_TABSTOP
  214 + COMBOBOX IDC_COMPORT_USB03,232,40,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
289 215 LTEXT "4: 耳机",IDC_STATIC,135,55,29,12,SS_CENTERIMAGE
290   - COMBOBOX IDC_COMPORT_EAR04,168,55,35,150,CBS_DROPDOWNLIST |
291   - WS_VSCROLL | WS_TABSTOP
  216 + COMBOBOX IDC_COMPORT_EAR04,168,55,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
292 217 LTEXT "发射器",IDC_STATIC,207,55,17,12,SS_CENTERIMAGE
293   - COMBOBOX IDC_COMPORT_USB04,232,55,35,150,CBS_DROPDOWNLIST |
294   - WS_VSCROLL | WS_TABSTOP
  218 + COMBOBOX IDC_COMPORT_USB04,232,55,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
295 219 LTEXT "5: 耳机",IDC_STATIC,135,70,29,12,SS_CENTERIMAGE
296   - COMBOBOX IDC_COMPORT_EAR05,168,70,35,150,CBS_DROPDOWNLIST |
297   - WS_VSCROLL | WS_TABSTOP
  220 + COMBOBOX IDC_COMPORT_EAR05,168,70,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
298 221 LTEXT "发射器",IDC_STATIC,207,70,17,12,SS_CENTERIMAGE
299   - COMBOBOX IDC_COMPORT_USB05,232,70,35,150,CBS_DROPDOWNLIST |
300   - WS_VSCROLL | WS_TABSTOP
  222 + COMBOBOX IDC_COMPORT_USB05,232,70,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
301 223 LTEXT "6: 耳机",IDC_STATIC,135,85,29,12,SS_CENTERIMAGE
302   - COMBOBOX IDC_COMPORT_EAR06,168,85,35,150,CBS_DROPDOWNLIST |
303   - WS_VSCROLL | WS_TABSTOP
  224 + COMBOBOX IDC_COMPORT_EAR06,168,85,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
304 225 LTEXT "发射器",IDC_STATIC,207,85,17,12,SS_CENTERIMAGE
305   - COMBOBOX IDC_COMPORT_USB06,232,85,35,150,CBS_DROPDOWNLIST |
306   - WS_VSCROLL | WS_TABSTOP
  226 + COMBOBOX IDC_COMPORT_USB06,232,85,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
307 227 LTEXT "7: 耳机",IDC_STATIC,135,100,29,12,SS_CENTERIMAGE
308   - COMBOBOX IDC_COMPORT_EAR07,168,100,35,150,CBS_DROPDOWNLIST |
309   - WS_VSCROLL | WS_TABSTOP
  228 + COMBOBOX IDC_COMPORT_EAR07,168,100,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
310 229 LTEXT "发射器",IDC_STATIC,207,100,17,12,SS_CENTERIMAGE
311   - COMBOBOX IDC_COMPORT_USB07,232,100,35,150,CBS_DROPDOWNLIST |
312   - WS_VSCROLL | WS_TABSTOP
  230 + COMBOBOX IDC_COMPORT_USB07,232,100,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
313 231 LTEXT "8: 耳机",IDC_STATIC,135,115,29,12,SS_CENTERIMAGE
314   - COMBOBOX IDC_COMPORT_EAR08,168,115,35,150,CBS_DROPDOWNLIST |
315   - WS_VSCROLL | WS_TABSTOP
  232 + COMBOBOX IDC_COMPORT_EAR08,168,115,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
316 233 LTEXT "发射器",IDC_STATIC,207,115,17,12,SS_CENTERIMAGE
317   - COMBOBOX IDC_COMPORT_USB08,232,115,35,150,CBS_DROPDOWNLIST |
318   - WS_VSCROLL | WS_TABSTOP
  234 + COMBOBOX IDC_COMPORT_USB08,232,115,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
319 235 LTEXT "9: 耳机",IDC_STATIC,135,130,29,12,SS_CENTERIMAGE
320   - COMBOBOX IDC_COMPORT_EAR09,168,130,35,150,CBS_DROPDOWNLIST |
321   - WS_VSCROLL | WS_TABSTOP
  236 + COMBOBOX IDC_COMPORT_EAR09,168,130,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
322 237 LTEXT "发射器",IDC_STATIC,207,130,17,12,SS_CENTERIMAGE
323   - COMBOBOX IDC_COMPORT_USB09,232,130,35,150,CBS_DROPDOWNLIST |
324   - WS_VSCROLL | WS_TABSTOP
  238 + COMBOBOX IDC_COMPORT_USB09,232,130,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
325 239 LTEXT "10: 耳机",IDC_STATIC,135,145,29,12,SS_CENTERIMAGE
326   - COMBOBOX IDC_COMPORT_EAR10,168,145,35,150,CBS_DROPDOWNLIST |
327   - WS_VSCROLL | WS_TABSTOP
  240 + COMBOBOX IDC_COMPORT_EAR10,168,145,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
328 241 LTEXT "发射器",IDC_STATIC,207,145,17,12,SS_CENTERIMAGE
329   - COMBOBOX IDC_COMPORT_USB10,232,145,35,150,CBS_DROPDOWNLIST |
330   - WS_VSCROLL | WS_TABSTOP
  242 + COMBOBOX IDC_COMPORT_USB10,232,145,35,150,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
331 243 GROUPBOX "软件路径",IDC_STATIC,0,170,250,50
332   - EDITTEXT IDC_EDIT_EAR_PATH,5,185,180,14,ES_AUTOHSCROLL |
333   - ES_READONLY
334   - EDITTEXT IDC_EDIT_USB_PATH,5,204,180,14,ES_AUTOHSCROLL |
335   - ES_READONLY
  244 + EDITTEXT IDC_EDIT_EAR_PATH,5,185,180,14,ES_AUTOHSCROLL | ES_READONLY
  245 + EDITTEXT IDC_EDIT_USB_PATH,5,204,180,14,ES_AUTOHSCROLL | ES_READONLY
336 246 PUSHBUTTON "耳机软件",IDC_BUTTON_SECPATH_EAR,192,185,50,14
337 247 PUSHBUTTON "发射器软件",IDC_BUTTON_SECPATH_USB,192,204,50,14
338 248 PUSHBUTTON "保存",IDOK,255,185,34,14
339 249 PUSHBUTTON "取消",IDCANCEL,255,204,34,14
  250 + LTEXT "到",IDC_STATIC,69,34,9,12,SS_CENTERIMAGE
  251 + LTEXT "SN号前缀",IDC_STATIC,5,21,34,11,SS_CENTERIMAGE
  252 + EDITTEXT IDC_EDIT_SN_HEADER,43,21,61,12,ES_AUTOHSCROLL
340 253 END
341 254
342 255
343   -#ifndef _MAC
344 256 /////////////////////////////////////////////////////////////////////////////
345 257 //
346 258 // Version
... ... @@ -363,15 +275,13 @@ BEGIN
363 275 BEGIN
364 276 BLOCK "080404B0"
365 277 BEGIN
366   - VALUE "CompanyName", "\0"
367   - VALUE "FileDescription", "BlueFlashTool Microsoft 基础类应用程序\0"
368   - VALUE "FileVersion", "1, 0, 0, 1\0"
369   - VALUE "InternalName", "BlueFlashTool\0"
370   - VALUE "LegalCopyright", "版权所有 (C) 2021\0"
371   - VALUE "LegalTrademarks", "\0"
372   - VALUE "OriginalFilename", "BlueFlashTool.EXE\0"
373   - VALUE "ProductName", "BlueFlashTool 应用程序\0"
374   - VALUE "ProductVersion", "1, 0, 0, 1\0"
  278 + VALUE "FileDescription", "BlueFlashTool Microsoft 基础类应用程序"
  279 + VALUE "FileVersion", "1, 0, 0, 1"
  280 + VALUE "InternalName", "BlueFlashTool"
  281 + VALUE "LegalCopyright", "版权所有 (C) 2021"
  282 + VALUE "OriginalFilename", "BlueFlashTool.EXE"
  283 + VALUE "ProductName", "BlueFlashTool 应用程序"
  284 + VALUE "ProductVersion", "1, 0, 0, 1"
375 285 END
376 286 END
377 287 BLOCK "VarFileInfo"
... ... @@ -380,8 +290,6 @@ BEGIN
380 290 END
381 291 END
382 292
383   -#endif // !_MAC
384   -
385 293
386 294 /////////////////////////////////////////////////////////////////////////////
387 295 //
... ... @@ -389,7 +297,7 @@ END
389 297 //
390 298
391 299 #ifdef APSTUDIO_INVOKED
392   -GUIDELINES DESIGNINFO DISCARDABLE
  300 +GUIDELINES DESIGNINFO
393 301 BEGIN
394 302 IDD_BLUEFLASHTOOL_DIALOG, DIALOG
395 303 BEGIN
... ...
  1 +
  2 +Microsoft Visual Studio Solution File, Format Version 10.00
  3 +# Visual Studio 2008
  4 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BlueFlashTool", "BlueFlashTool.vcproj", "{38C9243D-4825-4F26-8591-ECD789F681D9}"
  5 +EndProject
  6 +Global
  7 + GlobalSection(SolutionConfigurationPlatforms) = preSolution
  8 + Debug|Win32 = Debug|Win32
  9 + Release|Win32 = Release|Win32
  10 + EndGlobalSection
  11 + GlobalSection(ProjectConfigurationPlatforms) = postSolution
  12 + {38C9243D-4825-4F26-8591-ECD789F681D9}.Debug|Win32.ActiveCfg = Debug|Win32
  13 + {38C9243D-4825-4F26-8591-ECD789F681D9}.Debug|Win32.Build.0 = Debug|Win32
  14 + {38C9243D-4825-4F26-8591-ECD789F681D9}.Release|Win32.ActiveCfg = Release|Win32
  15 + {38C9243D-4825-4F26-8591-ECD789F681D9}.Release|Win32.Build.0 = Release|Win32
  16 + EndGlobalSection
  17 + GlobalSection(SolutionProperties) = preSolution
  18 + HideSolutionNode = FALSE
  19 + EndGlobalSection
  20 +EndGlobal
... ...
  1 +<?xml version="1.0" encoding="gb2312"?>
  2 +<VisualStudioProject
  3 + ProjectType="Visual C++"
  4 + Version="9.00"
  5 + Name="BlueFlashTool"
  6 + ProjectGUID="{38C9243D-4825-4F26-8591-ECD789F681D9}"
  7 + RootNamespace="BlueFlashTool"
  8 + Keyword="MFCProj"
  9 + TargetFrameworkVersion="0"
  10 + >
  11 + <Platforms>
  12 + <Platform
  13 + Name="Win32"
  14 + />
  15 + </Platforms>
  16 + <ToolFiles>
  17 + </ToolFiles>
  18 + <Configurations>
  19 + <Configuration
  20 + Name="Release|Win32"
  21 + OutputDirectory=".\Release"
  22 + IntermediateDirectory=".\Release"
  23 + ConfigurationType="1"
  24 + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
  25 + UseOfMFC="2"
  26 + ATLMinimizesCRunTimeLibraryUsage="false"
  27 + CharacterSet="2"
  28 + >
  29 + <Tool
  30 + Name="VCPreBuildEventTool"
  31 + />
  32 + <Tool
  33 + Name="VCCustomBuildTool"
  34 + />
  35 + <Tool
  36 + Name="VCXMLDataGeneratorTool"
  37 + />
  38 + <Tool
  39 + Name="VCWebServiceProxyGeneratorTool"
  40 + />
  41 + <Tool
  42 + Name="VCMIDLTool"
  43 + PreprocessorDefinitions="NDEBUG"
  44 + MkTypLibCompatible="true"
  45 + SuppressStartupBanner="true"
  46 + TargetEnvironment="1"
  47 + TypeLibraryName=".\Release/BlueFlashTool.tlb"
  48 + HeaderFileName=""
  49 + />
  50 + <Tool
  51 + Name="VCCLCompilerTool"
  52 + Optimization="2"
  53 + InlineFunctionExpansion="1"
  54 + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
  55 + StringPooling="true"
  56 + RuntimeLibrary="2"
  57 + EnableFunctionLevelLinking="true"
  58 + UsePrecompiledHeader="2"
  59 + PrecompiledHeaderThrough="stdafx.h"
  60 + PrecompiledHeaderFile=".\Release/BlueFlashTool.pch"
  61 + AssemblerListingLocation=".\Release/"
  62 + ObjectFile=".\Release/"
  63 + ProgramDataBaseFileName=".\Release/"
  64 + WarningLevel="3"
  65 + SuppressStartupBanner="true"
  66 + />
  67 + <Tool
  68 + Name="VCManagedResourceCompilerTool"
  69 + />
  70 + <Tool
  71 + Name="VCResourceCompilerTool"
  72 + PreprocessorDefinitions="NDEBUG"
  73 + Culture="2052"
  74 + />
  75 + <Tool
  76 + Name="VCPreLinkEventTool"
  77 + />
  78 + <Tool
  79 + Name="VCLinkerTool"
  80 + OutputFile=".\Release/BlueFlashTool.exe"
  81 + LinkIncremental="1"
  82 + SuppressStartupBanner="true"
  83 + ProgramDatabaseFile=".\Release/BlueFlashTool.pdb"
  84 + SubSystem="2"
  85 + RandomizedBaseAddress="1"
  86 + DataExecutionPrevention="0"
  87 + TargetMachine="1"
  88 + />
  89 + <Tool
  90 + Name="VCALinkTool"
  91 + />
  92 + <Tool
  93 + Name="VCManifestTool"
  94 + />
  95 + <Tool
  96 + Name="VCXDCMakeTool"
  97 + />
  98 + <Tool
  99 + Name="VCBscMakeTool"
  100 + SuppressStartupBanner="true"
  101 + OutputFile=".\Release/BlueFlashTool.bsc"
  102 + />
  103 + <Tool
  104 + Name="VCFxCopTool"
  105 + />
  106 + <Tool
  107 + Name="VCAppVerifierTool"
  108 + />
  109 + <Tool
  110 + Name="VCPostBuildEventTool"
  111 + />
  112 + </Configuration>
  113 + <Configuration
  114 + Name="Debug|Win32"
  115 + OutputDirectory=".\Debug"
  116 + IntermediateDirectory=".\Debug"
  117 + ConfigurationType="1"
  118 + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
  119 + UseOfMFC="2"
  120 + ATLMinimizesCRunTimeLibraryUsage="false"
  121 + CharacterSet="2"
  122 + >
  123 + <Tool
  124 + Name="VCPreBuildEventTool"
  125 + />
  126 + <Tool
  127 + Name="VCCustomBuildTool"
  128 + />
  129 + <Tool
  130 + Name="VCXMLDataGeneratorTool"
  131 + />
  132 + <Tool
  133 + Name="VCWebServiceProxyGeneratorTool"
  134 + />
  135 + <Tool
  136 + Name="VCMIDLTool"
  137 + PreprocessorDefinitions="_DEBUG"
  138 + MkTypLibCompatible="true"
  139 + SuppressStartupBanner="true"
  140 + TargetEnvironment="1"
  141 + TypeLibraryName=".\Debug/BlueFlashTool.tlb"
  142 + HeaderFileName=""
  143 + />
  144 + <Tool
  145 + Name="VCCLCompilerTool"
  146 + Optimization="0"
  147 + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
  148 + MinimalRebuild="true"
  149 + BasicRuntimeChecks="3"
  150 + RuntimeLibrary="3"
  151 + UsePrecompiledHeader="2"
  152 + PrecompiledHeaderThrough="stdafx.h"
  153 + PrecompiledHeaderFile=".\Debug/BlueFlashTool.pch"
  154 + AssemblerListingLocation=".\Debug/"
  155 + ObjectFile=".\Debug/"
  156 + ProgramDataBaseFileName=".\Debug/"
  157 + BrowseInformation="1"
  158 + WarningLevel="3"
  159 + SuppressStartupBanner="true"
  160 + DebugInformationFormat="4"
  161 + />
  162 + <Tool
  163 + Name="VCManagedResourceCompilerTool"
  164 + />
  165 + <Tool
  166 + Name="VCResourceCompilerTool"
  167 + PreprocessorDefinitions="_DEBUG"
  168 + Culture="2052"
  169 + />
  170 + <Tool
  171 + Name="VCPreLinkEventTool"
  172 + />
  173 + <Tool
  174 + Name="VCLinkerTool"
  175 + OutputFile=".\Debug/BlueFlashTool.exe"
  176 + LinkIncremental="2"
  177 + SuppressStartupBanner="true"
  178 + GenerateDebugInformation="true"
  179 + ProgramDatabaseFile=".\Debug/BlueFlashTool.pdb"
  180 + SubSystem="2"
  181 + RandomizedBaseAddress="1"
  182 + DataExecutionPrevention="0"
  183 + TargetMachine="1"
  184 + />
  185 + <Tool
  186 + Name="VCALinkTool"
  187 + />
  188 + <Tool
  189 + Name="VCManifestTool"
  190 + />
  191 + <Tool
  192 + Name="VCXDCMakeTool"
  193 + />
  194 + <Tool
  195 + Name="VCBscMakeTool"
  196 + SuppressStartupBanner="true"
  197 + OutputFile=".\Debug/BlueFlashTool.bsc"
  198 + />
  199 + <Tool
  200 + Name="VCFxCopTool"
  201 + />
  202 + <Tool
  203 + Name="VCAppVerifierTool"
  204 + />
  205 + <Tool
  206 + Name="VCPostBuildEventTool"
  207 + />
  208 + </Configuration>
  209 + </Configurations>
  210 + <References>
  211 + </References>
  212 + <Files>
  213 + <Filter
  214 + Name="Source Files"
  215 + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
  216 + >
  217 + <File
  218 + RelativePath="BlueFlashTool.cpp"
  219 + >
  220 + <FileConfiguration
  221 + Name="Release|Win32"
  222 + >
  223 + <Tool
  224 + Name="VCCLCompilerTool"
  225 + PreprocessorDefinitions=""
  226 + />
  227 + </FileConfiguration>
  228 + <FileConfiguration
  229 + Name="Debug|Win32"
  230 + >
  231 + <Tool
  232 + Name="VCCLCompilerTool"
  233 + PreprocessorDefinitions=""
  234 + />
  235 + </FileConfiguration>
  236 + </File>
  237 + <File
  238 + RelativePath="BlueFlashTool.rc"
  239 + >
  240 + <FileConfiguration
  241 + Name="Release|Win32"
  242 + >
  243 + <Tool
  244 + Name="VCResourceCompilerTool"
  245 + PreprocessorDefinitions=""
  246 + />
  247 + </FileConfiguration>
  248 + <FileConfiguration
  249 + Name="Debug|Win32"
  250 + >
  251 + <Tool
  252 + Name="VCResourceCompilerTool"
  253 + PreprocessorDefinitions=""
  254 + />
  255 + </FileConfiguration>
  256 + </File>
  257 + <File
  258 + RelativePath="BlueFlashToolDlg.cpp"
  259 + >
  260 + <FileConfiguration
  261 + Name="Release|Win32"
  262 + >
  263 + <Tool
  264 + Name="VCCLCompilerTool"
  265 + PreprocessorDefinitions=""
  266 + />
  267 + </FileConfiguration>
  268 + <FileConfiguration
  269 + Name="Debug|Win32"
  270 + >
  271 + <Tool
  272 + Name="VCCLCompilerTool"
  273 + PreprocessorDefinitions=""
  274 + />
  275 + </FileConfiguration>
  276 + </File>
  277 + <File
  278 + RelativePath=".\IniFile.cpp"
  279 + >
  280 + </File>
  281 + <File
  282 + RelativePath="mscomm.cpp"
  283 + >
  284 + <FileConfiguration
  285 + Name="Release|Win32"
  286 + >
  287 + <Tool
  288 + Name="VCCLCompilerTool"
  289 + PreprocessorDefinitions=""
  290 + />
  291 + </FileConfiguration>
  292 + <FileConfiguration
  293 + Name="Debug|Win32"
  294 + >
  295 + <Tool
  296 + Name="VCCLCompilerTool"
  297 + PreprocessorDefinitions=""
  298 + />
  299 + </FileConfiguration>
  300 + </File>
  301 + <File
  302 + RelativePath="StdAfx.cpp"
  303 + >
  304 + <FileConfiguration
  305 + Name="Release|Win32"
  306 + >
  307 + <Tool
  308 + Name="VCCLCompilerTool"
  309 + PreprocessorDefinitions=""
  310 + UsePrecompiledHeader="1"
  311 + />
  312 + </FileConfiguration>
  313 + <FileConfiguration
  314 + Name="Debug|Win32"
  315 + >
  316 + <Tool
  317 + Name="VCCLCompilerTool"
  318 + PreprocessorDefinitions=""
  319 + UsePrecompiledHeader="1"
  320 + />
  321 + </FileConfiguration>
  322 + </File>
  323 + <File
  324 + RelativePath="SysConfig.cpp"
  325 + >
  326 + <FileConfiguration
  327 + Name="Release|Win32"
  328 + >
  329 + <Tool
  330 + Name="VCCLCompilerTool"
  331 + PreprocessorDefinitions=""
  332 + />
  333 + </FileConfiguration>
  334 + <FileConfiguration
  335 + Name="Debug|Win32"
  336 + >
  337 + <Tool
  338 + Name="VCCLCompilerTool"
  339 + PreprocessorDefinitions=""
  340 + />
  341 + </FileConfiguration>
  342 + </File>
  343 + </Filter>
  344 + <Filter
  345 + Name="Header Files"
  346 + Filter="h;hpp;hxx;hm;inl"
  347 + >
  348 + <File
  349 + RelativePath="BlueFlashTool.h"
  350 + >
  351 + </File>
  352 + <File
  353 + RelativePath="BlueFlashToolDlg.h"
  354 + >
  355 + </File>
  356 + <File
  357 + RelativePath=".\IniFile.h"
  358 + >
  359 + </File>
  360 + <File
  361 + RelativePath="mscomm.h"
  362 + >
  363 + </File>
  364 + <File
  365 + RelativePath="Resource.h"
  366 + >
  367 + </File>
  368 + <File
  369 + RelativePath="StdAfx.h"
  370 + >
  371 + </File>
  372 + <File
  373 + RelativePath="SysConfig.h"
  374 + >
  375 + </File>
  376 + </Filter>
  377 + <Filter
  378 + Name="Resource Files"
  379 + Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
  380 + >
  381 + <File
  382 + RelativePath="res\BlueFlashTool.ico"
  383 + >
  384 + </File>
  385 + <File
  386 + RelativePath="res\BlueFlashTool.rc2"
  387 + >
  388 + </File>
  389 + </Filter>
  390 + <File
  391 + RelativePath="ReadMe.txt"
  392 + >
  393 + </File>
  394 + </Files>
  395 + <Globals>
  396 + <Global
  397 + Name="RESOURCE_FILE"
  398 + Value="BlueFlashTool.rc"
  399 + />
  400 + </Globals>
  401 +</VisualStudioProject>
... ...
... ... @@ -29,7 +29,28 @@ void CBlueFlashToolDlg::DoDataExchange(CDataExchange* pDX)
29 29 {
30 30 CDialog::DoDataExchange(pDX);
31 31 //{{AFX_DATA_MAP(CBlueFlashToolDlg)
32   - DDX_Control(pDX, IDC_MSCOMM0, mycom);
  32 + DDX_Control(pDX, IDC_MSCOMM0, mycom_debug);
  33 + DDX_Control(pDX, IDC_MSCOMM1, mycom01);
  34 + DDX_Control(pDX, IDC_MSCOMM2, mycom02);
  35 + DDX_Control(pDX, IDC_MSCOMM3, mycom03);
  36 + DDX_Control(pDX, IDC_MSCOMM4, mycom04);
  37 + DDX_Control(pDX, IDC_MSCOMM5, mycom05);
  38 + DDX_Control(pDX, IDC_MSCOMM6, mycom06);
  39 + DDX_Control(pDX, IDC_MSCOMM7, mycom07);
  40 + DDX_Control(pDX, IDC_MSCOMM8, mycom08);
  41 + DDX_Control(pDX, IDC_MSCOMM9, mycom09);
  42 + DDX_Control(pDX, IDC_MSCOMM10, mycom10);
  43 + DDX_Control(pDX, IDC_MSCOMM11, mycom11);
  44 + DDX_Control(pDX, IDC_MSCOMM12, mycom12);
  45 + DDX_Control(pDX, IDC_MSCOMM13, mycom13);
  46 + DDX_Control(pDX, IDC_MSCOMM14, mycom14);
  47 + DDX_Control(pDX, IDC_MSCOMM15, mycom15);
  48 + DDX_Control(pDX, IDC_MSCOMM16, mycom16);
  49 + DDX_Control(pDX, IDC_MSCOMM17, mycom17);
  50 + DDX_Control(pDX, IDC_MSCOMM18, mycom18);
  51 + DDX_Control(pDX, IDC_MSCOMM19, mycom19);
  52 + DDX_Control(pDX, IDC_MSCOMM20, mycom20);
  53 +
33 54 //}}AFX_DATA_MAP
34 55 }
35 56
... ... @@ -39,6 +60,27 @@ BEGIN_MESSAGE_MAP(CBlueFlashToolDlg, CDialog)
39 60 ON_WM_QUERYDRAGICON()
40 61 ON_BN_CLICKED(IDC_BUTTON_SETTING, OnButtonSetting)
41 62 //}}AFX_MSG_MAP
  63 + ON_BN_CLICKED(IDC_BUTTON_INIT_COMPORT, &CBlueFlashToolDlg::OnBnClickedButtonInitComport)
  64 + ON_BN_CLICKED(IDC_CHECK_EAR1, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  65 + ON_BN_CLICKED(IDC_CHECK_EAR2, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  66 + ON_BN_CLICKED(IDC_CHECK_EAR3, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  67 + ON_BN_CLICKED(IDC_CHECK_EAR4, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  68 + ON_BN_CLICKED(IDC_CHECK_EAR5, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  69 + ON_BN_CLICKED(IDC_CHECK_EAR6, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  70 + ON_BN_CLICKED(IDC_CHECK_EAR7, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  71 + ON_BN_CLICKED(IDC_CHECK_EAR8, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  72 + ON_BN_CLICKED(IDC_CHECK_EAR9, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  73 + ON_BN_CLICKED(IDC_CHECK_EAR10, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  74 + ON_BN_CLICKED(IDC_CHECK_USB1, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  75 + ON_BN_CLICKED(IDC_CHECK_USB2, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  76 + ON_BN_CLICKED(IDC_CHECK_USB3, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  77 + ON_BN_CLICKED(IDC_CHECK_USB4, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  78 + ON_BN_CLICKED(IDC_CHECK_USB5, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  79 + ON_BN_CLICKED(IDC_CHECK_USB6, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  80 + ON_BN_CLICKED(IDC_CHECK_USB7, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  81 + ON_BN_CLICKED(IDC_CHECK_USB8, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  82 + ON_BN_CLICKED(IDC_CHECK_USB9, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
  83 + ON_BN_CLICKED(IDC_CHECK_USB10, &CBlueFlashToolDlg::OnBnClickedCheckEarUsb)
42 84 END_MESSAGE_MAP()
43 85
44 86 /////////////////////////////////////////////////////////////////////////////
... ... @@ -54,6 +96,57 @@ BOOL CBlueFlashToolDlg::OnInitDialog()
54 96 SetIcon(m_hIcon, FALSE); // Set small icon
55 97
56 98 // TODO: Add extra initialization here
  99 + pcheckButtonEar[0] = (CButton *)GetDlgItem(IDC_CHECK_EAR1);
  100 + pcheckButtonEar[1] = (CButton *)GetDlgItem(IDC_CHECK_EAR2);
  101 + pcheckButtonEar[2] = (CButton *)GetDlgItem(IDC_CHECK_EAR3);
  102 + pcheckButtonEar[3] = (CButton *)GetDlgItem(IDC_CHECK_EAR4);
  103 + pcheckButtonEar[4] = (CButton *)GetDlgItem(IDC_CHECK_EAR5);
  104 + pcheckButtonEar[5] = (CButton *)GetDlgItem(IDC_CHECK_EAR6);
  105 + pcheckButtonEar[6] = (CButton *)GetDlgItem(IDC_CHECK_EAR7);
  106 + pcheckButtonEar[7] = (CButton *)GetDlgItem(IDC_CHECK_EAR8);
  107 + pcheckButtonEar[8] = (CButton *)GetDlgItem(IDC_CHECK_EAR9);
  108 + pcheckButtonEar[9] = (CButton *)GetDlgItem(IDC_CHECK_EAR10);
  109 + pcheckButtonUsb[0] = (CButton *)GetDlgItem(IDC_CHECK_USB1);
  110 + pcheckButtonUsb[1] = (CButton *)GetDlgItem(IDC_CHECK_USB2);
  111 + pcheckButtonUsb[2] = (CButton *)GetDlgItem(IDC_CHECK_USB3);
  112 + pcheckButtonUsb[3] = (CButton *)GetDlgItem(IDC_CHECK_USB4);
  113 + pcheckButtonUsb[4] = (CButton *)GetDlgItem(IDC_CHECK_USB5);
  114 + pcheckButtonUsb[5] = (CButton *)GetDlgItem(IDC_CHECK_USB6);
  115 + pcheckButtonUsb[6] = (CButton *)GetDlgItem(IDC_CHECK_USB7);
  116 + pcheckButtonUsb[7] = (CButton *)GetDlgItem(IDC_CHECK_USB8);
  117 + pcheckButtonUsb[8] = (CButton *)GetDlgItem(IDC_CHECK_USB9);
  118 + pcheckButtonUsb[9] = (CButton *)GetDlgItem(IDC_CHECK_USB10);
  119 + pButtonEar[0] = (CButton *)GetDlgItem(IDC_BUTTON_START_EAR01);
  120 + pButtonEar[1] = (CButton *)GetDlgItem(IDC_BUTTON_START_EAR2);
  121 + pButtonEar[2] = (CButton *)GetDlgItem(IDC_BUTTON_START_EAR3);
  122 + pButtonEar[3] = (CButton *)GetDlgItem(IDC_BUTTON_START_EAR4);
  123 + pButtonEar[4] = (CButton *)GetDlgItem(IDC_BUTTON_START_EAR5);
  124 + pButtonEar[5] = (CButton *)GetDlgItem(IDC_BUTTON_START_EAR6);
  125 + pButtonEar[6] = (CButton *)GetDlgItem(IDC_BUTTON_START_EAR7);
  126 + pButtonEar[7] = (CButton *)GetDlgItem(IDC_BUTTON_START_EAR8);
  127 + pButtonEar[8] = (CButton *)GetDlgItem(IDC_BUTTON_START_EAR9);
  128 + pButtonEar[9] = (CButton *)GetDlgItem(IDC_BUTTON_START_EAR10);
  129 + pButtonUsb[0] = (CButton *)GetDlgItem(IDC_BUTTON_START_USB01);
  130 + pButtonUsb[1] = (CButton *)GetDlgItem(IDC_BUTTON_START_USB2);
  131 + pButtonUsb[2] = (CButton *)GetDlgItem(IDC_BUTTON_START_USB3);
  132 + pButtonUsb[3] = (CButton *)GetDlgItem(IDC_BUTTON_START_USB4);
  133 + pButtonUsb[4] = (CButton *)GetDlgItem(IDC_BUTTON_START_USB5);
  134 + pButtonUsb[5] = (CButton *)GetDlgItem(IDC_BUTTON_START_USB6);
  135 + pButtonUsb[6] = (CButton *)GetDlgItem(IDC_BUTTON_START_USB7);
  136 + pButtonUsb[7] = (CButton *)GetDlgItem(IDC_BUTTON_START_USB8);
  137 + pButtonUsb[8] = (CButton *)GetDlgItem(IDC_BUTTON_START_USB9);
  138 + pButtonUsb[9] = (CButton *)GetDlgItem(IDC_BUTTON_START_USB10);
  139 + pStatic[0] = (CStatic *)GetDlgItem(IDC_STATIC_GROUP01);
  140 + pStatic[1] = (CStatic *)GetDlgItem(IDC_STATIC_GROUP2);
  141 + pStatic[2] = (CStatic *)GetDlgItem(IDC_STATIC_GROUP3);
  142 + pStatic[3] = (CStatic *)GetDlgItem(IDC_STATIC_GROUP4);
  143 + pStatic[4] = (CStatic *)GetDlgItem(IDC_STATIC_GROUP5);
  144 + pStatic[5] = (CStatic *)GetDlgItem(IDC_STATIC_GROUP6);
  145 + pStatic[6] = (CStatic *)GetDlgItem(IDC_STATIC_GROUP7);
  146 + pStatic[7] = (CStatic *)GetDlgItem(IDC_STATIC_GROUP8);
  147 + pStatic[8] = (CStatic *)GetDlgItem(IDC_STATIC_GROUP9);
  148 + pStatic[9] = (CStatic *)GetDlgItem(IDC_STATIC_GROUP10);
  149 +
57 150 UpdateGroupsCaptions();
58 151
59 152 return TRUE; // return TRUE unless you set the focus to a control
... ... @@ -106,23 +199,144 @@ void CBlueFlashToolDlg::OnButtonSetting()
106 199 void CBlueFlashToolDlg::UpdateGroupsCaptions()
107 200 {
108 201 CString strCaptionStatics;
  202 + int loop = 0;
  203 + bool group_idle;
  204 +
109 205 strCaptionStatics.Format("SN: %s%05d",g_AppMainData.SN_head,g_AppMainData.SN_cur);
110 206 GetDlgItem(IDC_STATIC_GROUP01)->SetWindowText(strCaptionStatics);
111   - GetDlgItem(IDC_STATIC_GROUP6)->SetWindowText(strCaptionStatics);
112   -
113 207 strCaptionStatics.Format("SN: %s%05d",g_AppMainData.SN_head,g_AppMainData.SN_cur+1);
114 208 GetDlgItem(IDC_STATIC_GROUP2)->SetWindowText(strCaptionStatics);
115   - GetDlgItem(IDC_STATIC_GROUP7)->SetWindowText(strCaptionStatics);
116   -
117 209 strCaptionStatics.Format("SN: %s%05d",g_AppMainData.SN_head,g_AppMainData.SN_cur+2);
118 210 GetDlgItem(IDC_STATIC_GROUP3)->SetWindowText(strCaptionStatics);
119   - GetDlgItem(IDC_STATIC_GROUP8)->SetWindowText(strCaptionStatics);
120   -
121 211 strCaptionStatics.Format("SN: %s%05d",g_AppMainData.SN_head,g_AppMainData.SN_cur+3);
122 212 GetDlgItem(IDC_STATIC_GROUP4)->SetWindowText(strCaptionStatics);
123   - GetDlgItem(IDC_STATIC_GROUP9)->SetWindowText(strCaptionStatics);
124   -
125 213 strCaptionStatics.Format("SN: %s%05d",g_AppMainData.SN_head,g_AppMainData.SN_cur+4);
126 214 GetDlgItem(IDC_STATIC_GROUP5)->SetWindowText(strCaptionStatics);
  215 + strCaptionStatics.Format("SN: %s%05d",g_AppMainData.SN_head,g_AppMainData.SN_cur+5);
  216 + GetDlgItem(IDC_STATIC_GROUP6)->SetWindowText(strCaptionStatics);
  217 + strCaptionStatics.Format("SN: %s%05d",g_AppMainData.SN_head,g_AppMainData.SN_cur+6);
  218 + GetDlgItem(IDC_STATIC_GROUP7)->SetWindowText(strCaptionStatics);
  219 + strCaptionStatics.Format("SN: %s%05d",g_AppMainData.SN_head,g_AppMainData.SN_cur+7);
  220 + GetDlgItem(IDC_STATIC_GROUP8)->SetWindowText(strCaptionStatics);
  221 + strCaptionStatics.Format("SN: %s%05d",g_AppMainData.SN_head,g_AppMainData.SN_cur+8);
  222 + GetDlgItem(IDC_STATIC_GROUP9)->SetWindowText(strCaptionStatics);
  223 + strCaptionStatics.Format("SN: %s%05d",g_AppMainData.SN_head,g_AppMainData.SN_cur+9);
127 224 GetDlgItem(IDC_STATIC_GROUP10)->SetWindowText(strCaptionStatics);
  225 + for (loop=0;loop<10;loop++)
  226 + {
  227 + pcheckButtonEar[loop]->EnableWindow(g_AppMainData.ary_myComPortEar[loop]>1?TRUE:FALSE);
  228 + pcheckButtonUsb[loop]->EnableWindow(g_AppMainData.ary_myComPortUsb[loop]>1?TRUE:FALSE);
  229 + if (g_AppMainData.ary_myComPortEar[loop]<2 && g_AppMainData.ary_myComPortUsb[loop]<2)
  230 + {
  231 + pStatic[loop]->EnableWindow(FALSE);
  232 + benableGroup[loop] = false;
  233 + }
  234 + else
  235 + pStatic[loop]->EnableWindow(TRUE);
  236 +
  237 + pButtonEar[loop]->EnableWindow(pcheckButtonEar[loop]->GetCheck());
  238 + pButtonUsb[loop]->EnableWindow(pcheckButtonUsb[loop]->GetCheck());
  239 +
  240 + if (pcheckButtonEar[loop]->GetCheck() || pcheckButtonUsb[loop]->GetCheck())
  241 + benableGroup[loop] = true;
  242 + else
  243 + benableGroup[loop] = false;
  244 + }
  245 +}
  246 +BEGIN_EVENTSINK_MAP(CBlueFlashToolDlg, CDialog)
  247 + ON_EVENT(CBlueFlashToolDlg, IDC_MSCOMM0, 1, CBlueFlashToolDlg::OnCommMscommDebug, VTS_NONE)
  248 + ON_EVENT_RANGE(CBlueFlashToolDlg, IDC_MSCOMM1,IDC_MSCOMM20, 1 , CBlueFlashToolDlg::OnOnCommMscomm1, VTS_I4 )
  249 +END_EVENTSINK_MAP()
  250 +
  251 +
  252 +void CBlueFlashToolDlg::OnCommMscommDebug()
  253 +{
  254 + // TODO: Add your message handler code here
  255 +}
  256 +
  257 +
  258 +
  259 +void CBlueFlashToolDlg::OnOnCommMscomm1(UINT nID)
  260 +{
  261 + // TODO: Add your message handler code here
  262 +}
  263 +
  264 +
  265 +
  266 +void CBlueFlashToolDlg::OnBnClickedButtonInitComport()
  267 +{
  268 +
  269 +}
  270 +
  271 +void CBlueFlashToolDlg::OnBnClickedCheckEarUsb()
  272 +{
  273 + int currentID;
  274 + currentID = GetFocus()->GetDlgCtrlID();
  275 + CButton *pbutton = (CButton *)GetDlgItem(currentID);
  276 + BOOL ifchecked = pbutton->GetCheck();
  277 + switch(currentID)
  278 + {
  279 + case IDC_CHECK_EAR1:
  280 + GetDlgItem(IDC_BUTTON_START_EAR01)->EnableWindow(ifchecked);
  281 + break;
  282 + case IDC_CHECK_EAR2:
  283 + GetDlgItem(IDC_BUTTON_START_EAR2)->EnableWindow(ifchecked);
  284 + break;
  285 + case IDC_CHECK_EAR3:
  286 + GetDlgItem(IDC_BUTTON_START_EAR3)->EnableWindow(ifchecked);
  287 + break;
  288 + case IDC_CHECK_EAR4:
  289 + GetDlgItem(IDC_BUTTON_START_EAR4)->EnableWindow(ifchecked);
  290 + break;
  291 + case IDC_CHECK_EAR5:
  292 + GetDlgItem(IDC_BUTTON_START_EAR5)->EnableWindow(ifchecked);
  293 + break;
  294 + case IDC_CHECK_EAR6:
  295 + GetDlgItem(IDC_BUTTON_START_EAR6)->EnableWindow(ifchecked);
  296 + break;
  297 + case IDC_CHECK_EAR7:
  298 + GetDlgItem(IDC_BUTTON_START_EAR7)->EnableWindow(ifchecked);
  299 + break;
  300 + case IDC_CHECK_EAR8:
  301 + GetDlgItem(IDC_BUTTON_START_EAR8)->EnableWindow(ifchecked);
  302 + break;
  303 + case IDC_CHECK_EAR9:
  304 + GetDlgItem(IDC_BUTTON_START_EAR9)->EnableWindow(ifchecked);
  305 + break;
  306 + case IDC_CHECK_EAR10:
  307 + GetDlgItem(IDC_BUTTON_START_EAR10)->EnableWindow(ifchecked);
  308 + break;
  309 + case IDC_CHECK_USB1:
  310 + GetDlgItem(IDC_BUTTON_START_USB01)->EnableWindow(ifchecked);
  311 + break;
  312 + case IDC_CHECK_USB2:
  313 + GetDlgItem(IDC_BUTTON_START_USB2)->EnableWindow(ifchecked);
  314 + break;
  315 + case IDC_CHECK_USB3:
  316 + GetDlgItem(IDC_BUTTON_START_USB3)->EnableWindow(ifchecked);
  317 + break;
  318 + case IDC_CHECK_USB4:
  319 + GetDlgItem(IDC_BUTTON_START_USB4)->EnableWindow(ifchecked);
  320 + break;
  321 + case IDC_CHECK_USB5:
  322 + GetDlgItem(IDC_BUTTON_START_USB5)->EnableWindow(ifchecked);
  323 + break;
  324 + case IDC_CHECK_USB6:
  325 + GetDlgItem(IDC_BUTTON_START_USB6)->EnableWindow(ifchecked);
  326 + break;
  327 + case IDC_CHECK_USB7:
  328 + GetDlgItem(IDC_BUTTON_START_USB7)->EnableWindow(ifchecked);
  329 + break;
  330 + case IDC_CHECK_USB8:
  331 + GetDlgItem(IDC_BUTTON_START_USB8)->EnableWindow(ifchecked);
  332 + break;
  333 + case IDC_CHECK_USB9:
  334 + GetDlgItem(IDC_BUTTON_START_USB9)->EnableWindow(ifchecked);
  335 + break;
  336 + case IDC_CHECK_USB10:
  337 + GetDlgItem(IDC_BUTTON_START_USB10)->EnableWindow(ifchecked);
  338 + break;
  339 +
  340 + }
  341 +
128 342 }
... ...
... ... @@ -2,6 +2,7 @@
2 2 //
3 3 //{{AFX_INCLUDES()
4 4 #include "mscomm.h"
  5 +#include "afxwin.h"
5 6 //}}AFX_INCLUDES
6 7
7 8 #if !defined(AFX_BLUEFLASHTOOLDLG_H__DE44DC07_CA43_417C_A12F_149A2C736BB5__INCLUDED_)
... ... @@ -24,7 +25,27 @@ public:
24 25 // Dialog Data
25 26 //{{AFX_DATA(CBlueFlashToolDlg)
26 27 enum { IDD = IDD_BLUEFLASHTOOL_DIALOG };
27   - CMSComm mycom;
  28 + CMSComm mycom_debug;
  29 + CMSComm mycom01;
  30 + CMSComm mycom02;
  31 + CMSComm mycom03;
  32 + CMSComm mycom04;
  33 + CMSComm mycom05;
  34 + CMSComm mycom06;
  35 + CMSComm mycom07;
  36 + CMSComm mycom08;
  37 + CMSComm mycom09;
  38 + CMSComm mycom10;
  39 + CMSComm mycom11;
  40 + CMSComm mycom12;
  41 + CMSComm mycom13;
  42 + CMSComm mycom14;
  43 + CMSComm mycom15;
  44 + CMSComm mycom16;
  45 + CMSComm mycom17;
  46 + CMSComm mycom18;
  47 + CMSComm mycom19;
  48 + CMSComm mycom20;
28 49 //}}AFX_DATA
29 50
30 51 // ClassWizard generated virtual function overrides
... ... @@ -45,6 +66,19 @@ protected:
45 66 afx_msg void OnButtonSetting();
46 67 //}}AFX_MSG
47 68 DECLARE_MESSAGE_MAP()
  69 +public:
  70 + DECLARE_EVENTSINK_MAP()
  71 + void OnCommMscommDebug();
  72 + afx_msg void OnOnCommMscomm1(UINT nID);
  73 + afx_msg void OnBnClickedButtonInitComport();
  74 + afx_msg void OnBnClickedCheckEarUsb();
  75 + CButton *pcheckButtonEar[10];
  76 + CButton *pcheckButtonUsb[10];
  77 + CButton *pButtonEar[10];
  78 + CButton *pButtonUsb[10];
  79 + CStatic *pStatic[10];
  80 + bool benableGroup[10];
  81 +
48 82 };
49 83
50 84 //{{AFX_INSERT_LOCATION}}
... ...
  1 +[SN_Config]
  2 +SN_same=1
  3 +SN_head=T
  4 +SN_start=0
  5 +SN_end=1
  6 +SN_cur=0
  7 +[UART_Config]
  8 +波特率=921600
  9 +校验位=0
  10 +数据位=3
  11 +停止位=0
  12 +流控制=0
  13 +ear_port1=2
  14 +ear_port2=4
  15 +ear_port3=0
  16 +ear_port4=0
  17 +ear_port5=0
  18 +ear_port6=0
  19 +ear_port7=0
  20 +ear_port8=0
  21 +ear_port9=0
  22 +ear_port10=0
  23 +usb_port1=0
  24 +usb_port2=0
  25 +usb_port3=0
  26 +usb_port4=0
  27 +usb_port5=0
  28 +usb_port6=0
  29 +usb_port7=0
  30 +usb_port8=0
  31 +usb_port9=0
  32 +usb_port10=0
  33 +[BinFilePath]
  34 +EarBin=D:\code\Optek_TBH01\BlueSea_OPTEK_LINK_LC3_DWE_RX1223\upgrade_bin\BlueSea_USB_SD_SDK_uart_RX20210109_C.bin
  35 +UsbBin=D:\code\Optek_TBH01\BlueSea_OPTEK_LINK_LC3_DWE_RX1223\upgrade_bin\BlueSea_USB_SD_SDK_uart_RX20210109_C.bin
... ...
  1 +[DeviceSetting]
  2 +Battery_Device=Keithley230x
  3 +Machine_Nmae=TEST12-RF1
  4 +Battery_Gpib=0
  5 +Battery_Addr=5
  6 +Battery_Volt=4.000000
  7 +Battery_Curr=2.000000
  8 +Battery_OutPort=1
  9 +Charger_Device=Keithley230x
  10 +Charger_Gpib=0
  11 +Charger_Addr=5
  12 +Charger_Volt=5.000000
  13 +Charger_Curr=2.000000
  14 +Charger_OutPort=2
  15 +CheckUseMaxRang=1
  16 +CurrentOffset=0.020000
  17 +MyKernelPort=0
  18 +[ParamsSetting]
  19 +Sample_CP=20
  20 +Test_CP=3
  21 +Delay_CP=1
  22 +Sample_PO=200
  23 +Test_PO=1
  24 +Delay_PO=1
  25 +Sample_PF=20
  26 +Test_PF=1
  27 +Delay_PF=15000
  28 +Sample_ID=50
  29 +Test_ID=1
  30 +Delay_ID=1
  31 +Sample_CH=50
  32 +Test_CH=1
  33 +Delay_CH=1
  34 +Sample_Sleep=50
  35 +Test_Sleep=1
  36 +Delay_Sleep=12000
  37 +[GlobalCount]
  38 +PassCount=0
  39 +TotalCount =0
  40 +[ComportSetting]
  41 +Brom Port Filter = VID_0E8D&PID_0003
  42 +Preloader Port Filter = VID_0E8D&PID_2000
  43 +Kernel Port Filter = VID_0E8D&PID_2000
  44 +[Others]
  45 +timesWhenEnterFactoryMode =1
  46 +delayWhenEnterFactoryMode =2
... ...
  1 +#include "StdAfx.h"
  2 +#include "IniFile.h"
  3 +
  4 +CIniFile::CIniFile(void)
  5 +{
  6 +}
  7 +
  8 +CIniFile::CIniFile(LPCTSTR strFileName)
  9 +{
  10 + m_strFileName=strFileName;
  11 +}
  12 +
  13 +CIniFile::~CIniFile(void)
  14 +{
  15 +}
  16 +
  17 +void CIniFile::SetIniFileName(LPCTSTR strFileName)
  18 +{
  19 + m_strFileName=strFileName;
  20 +}
  21 +
  22 +LPCTSTR CIniFile::GetIniFileName()
  23 +{
  24 + return m_strFileName;
  25 +}
  26 +
  27 +
  28 +BOOL CIniFile::WriteString(LPCTSTR strSection, LPCTSTR strKey, LPCTSTR strValue)
  29 +{
  30 + if(_tcslen(strSection)==0 || _tcslen(strKey)==0)
  31 + {
  32 + return FALSE;
  33 + }
  34 + return WritePrivateProfileString(strSection,strKey,strValue,m_strFileName);
  35 +}
  36 +
  37 +BOOL CIniFile::WriteInt(LPCTSTR strSection, LPCTSTR strKey, int iValue)
  38 +{
  39 + CString sss;
  40 + sss.Format(TEXT("%d"), iValue);
  41 + return WriteString(strSection, strKey, sss);
  42 +}
  43 +
  44 +BOOL CIniFile::WriteDouble(LPCTSTR strSection, LPCTSTR strKey, double fValue)
  45 +{
  46 + CString sss;
  47 + sss.Format(TEXT("%.6f"), fValue);
  48 + return WriteString(strSection, strKey, sss);
  49 +}
  50 +
  51 +BOOL CIniFile::WriteFloat(LPCTSTR strSection, LPCTSTR strKey, float fValue)
  52 +{
  53 + CString sss;
  54 + sss.Format(TEXT("%.6f"), fValue);
  55 + return WriteString(strSection, strKey, sss);
  56 +}
  57 +
  58 +BOOL CIniFile::WriteLong(LPCTSTR strSection, LPCTSTR strKey, long n32Value)
  59 +{
  60 + CString sss;
  61 + sss.Format(TEXT("%ld"), n32Value);
  62 + return WriteString(strSection, strKey, sss);
  63 +
  64 +}
  65 +
  66 +BOOL CIniFile::WriteDWORD(LPCTSTR strSection, LPCTSTR strKey, DWORD u32Value)
  67 +{
  68 + CString sss;
  69 + sss.Format(TEXT("%u"), u32Value);
  70 + return WriteString(strSection, strKey, sss);
  71 +}
  72 +
  73 +BOOL CIniFile::WriteBool(LPCTSTR strSection, LPCTSTR strKey, bool bValue)
  74 +{
  75 + CString sss;
  76 + sss.Format(TEXT("%d"), bValue?1:0);
  77 + return WriteString(strSection, strKey, sss);
  78 +}
  79 +
  80 +CString CIniFile::ReadString(LPCTSTR strSection, LPCTSTR strKey, CString strDefault)
  81 +{
  82 + CString sss;
  83 + if(_tcslen(strSection)==0 || _tcslen(strKey)==0)
  84 + {
  85 + return strDefault;
  86 + }
  87 + GetPrivateProfileString(strSection, strKey,strDefault,sss.GetBuffer(1000),1000,m_strFileName);
  88 + sss.ReleaseBuffer();
  89 + return sss;
  90 +
  91 +}
  92 +
  93 +int CIniFile::ReadInt(LPCTSTR strSection, LPCTSTR strKey, int iDefault)
  94 +{
  95 + if(_tcslen(strSection)==0 || _tcslen(strKey)==0)
  96 + {
  97 + return iDefault;
  98 + }
  99 + return GetPrivateProfileInt(strSection,strKey,iDefault,m_strFileName);
  100 +}
  101 +
  102 +double CIniFile::ReadDouble(LPCTSTR strSection, LPCTSTR strKey, double fDefualt)
  103 +{
  104 + if(_tcslen(strSection)==0 || _tcslen(strKey)==0)
  105 + {
  106 + return fDefualt;
  107 + }
  108 + CString sss;
  109 + sss = ReadString(strSection,strKey);
  110 + if ("ERROR" == sss)
  111 + {
  112 + return fDefualt;
  113 + }
  114 +
  115 + return atof(sss);
  116 +
  117 +}
  118 +
  119 +long CIniFile::ReadLong(LPCTSTR strSection, LPCTSTR strKey, long n32Defualt)
  120 +{
  121 + if(_tcslen(strSection)==0 || _tcslen(strKey)==0)
  122 + {
  123 + return n32Defualt;
  124 + }
  125 + CString sss;
  126 + sss = ReadString(strSection,strKey);
  127 + if ("ERROR" == sss)
  128 + {
  129 + return n32Defualt;
  130 + }
  131 + return _tcstoul(sss,NULL,10);
  132 +
  133 +}
  134 +
  135 +DWORD CIniFile::ReadDWORD(LPCTSTR strSection, LPCTSTR strKey, DWORD u32Defualt)
  136 +{
  137 + if(_tcslen(strSection)==0 || _tcslen(strKey)==0)
  138 + {
  139 + return u32Defualt;
  140 + }
  141 + CString sss;
  142 + sss = ReadString(strSection,strKey);
  143 + if ("ERROR" == sss)
  144 + {
  145 + return u32Defualt;
  146 + }
  147 + return _tcstoul(sss,NULL,10);
  148 +}
  149 +
  150 +float CIniFile::ReadFloat(LPCTSTR strSection, LPCTSTR strKey, float fDefualt)
  151 +{
  152 + if(_tcslen(strSection)==0 || _tcslen(strKey)==0)
  153 + {
  154 + return fDefualt;
  155 + }
  156 + CString sss;
  157 + sss = ReadString(strSection,strKey);
  158 + if ("ERROR" == sss)
  159 + {
  160 + return fDefualt;
  161 + }
  162 + return atof(sss);
  163 +}
  164 +
  165 +//1为true,其它值为false
  166 +bool CIniFile::ReadBool(LPCTSTR strSection, LPCTSTR strKey, bool bDefualt)
  167 +{
  168 + if(_tcslen(strSection)==0 || _tcslen(strKey)==0)
  169 + {
  170 + return bDefualt;
  171 + }
  172 + return (1 == ReadInt(strSection,strKey,bDefualt?1:0)?true:false);
  173 +
  174 +}
  175 +//删除某个section
  176 +BOOL CIniFile::DeleteSection(LPCTSTR strSection)
  177 +{
  178 + return WritePrivateProfileString(strSection,NULL,NULL,m_strFileName);
  179 +}
  180 +
  181 +//删除某个Section下的某个Key
  182 +BOOL CIniFile::DeleteKey(LPCTSTR strSection,LPCTSTR strKey)
  183 +{
  184 + return WritePrivateProfileString(strSection,strKey,NULL,m_strFileName);
  185 +}
  186 +// 获取所有的Section的列表
  187 +//parameters:
  188 +//CStringArray &SectionList -- 获取到的Section列表(out)
  189 +BOOL CIniFile::GetSectionList(CStringArray &SectionList)
  190 +{
  191 + TCHAR strBuffer[1000],*pPos=NULL;
  192 + SectionList.RemoveAll();
  193 + DWORD datacount=GetPrivateProfileString(NULL,NULL,TEXT("NOVAL"),strBuffer,1000,m_strFileName);
  194 + if(_tcscmp(strBuffer,TEXT("NOVAL"))==0)
  195 + {
  196 + return FALSE;
  197 + }
  198 +
  199 + CString sss;
  200 + pPos=strBuffer;
  201 + while(*pPos != '\0')
  202 + {
  203 + sss=pPos;
  204 + SectionList.Add(sss);
  205 + pPos+=sss.GetLength()+1;
  206 + }
  207 + return TRUE;
  208 +}
  209 +
  210 +//获取某个Section下的Key的列表
  211 +//parameters:
  212 +//LPCTSTR strSection -- Section(in)
  213 +//CStringArray &keylist -- 获取到的key 列表(out)
  214 +BOOL CIniFile::GetKeyList(LPCTSTR strSection,CStringArray &KeyList)
  215 +{
  216 + TCHAR strBuffer[1000],*pPos=NULL;
  217 + KeyList.RemoveAll();
  218 + DWORD datacount=GetPrivateProfileString(strSection,NULL,TEXT("NOVAL"),strBuffer,1000,m_strFileName);
  219 + if(_tcscmp(strBuffer,TEXT("NOVAL"))==0)
  220 + {
  221 + return FALSE;
  222 + }
  223 +
  224 + CString sss;
  225 + pPos=strBuffer;
  226 + while(*pPos != '\0')
  227 + {
  228 + sss=pPos;
  229 + KeyList.Add(sss);
  230 + pPos+=sss.GetLength()+1;
  231 + }
  232 +
  233 + return TRUE;
  234 +}
  235 +
  236 +
  237 +
  238 +//写Section
  239 +//parameters:
  240 +//LPCTSTR strSection -- Section(in)
  241 +//CStringArray &keylist -- key 列表(in)
  242 +//CStringArray &valuelist -- 对应key的值(in)
  243 +BOOL CIniFile::WriteSection(LPCTSTR strSection,CStringArray &keylist,CStringArray &valuelist)
  244 +{
  245 + if(_tcslen(strSection)==0 || keylist.GetSize()!=valuelist.GetSize())
  246 + {
  247 + return FALSE;
  248 + }
  249 + if(keylist.GetSize()==0 || valuelist.GetSize()==0)
  250 + {
  251 + return TRUE;
  252 + }
  253 +
  254 + CString strTemp = "";
  255 + CString sss ="";
  256 + BOOL bFlag = FALSE;
  257 + for(int i=0;i<keylist.GetSize();i++)
  258 + {
  259 + strTemp.Format(TEXT("%s=%s\r\n"),keylist[i],valuelist[i]);
  260 + sss += strTemp;
  261 + bFlag = WriteString(strSection,keylist[i],valuelist[i]);
  262 + if (bFlag == FALSE)
  263 + {
  264 + return FALSE;
  265 + }
  266 + }
  267 + return TRUE;
  268 +}
  269 +
  270 +//读Section
  271 +//parameters:
  272 +//LPCTSTR strSection -- Section(in)
  273 +//CStringArray &keylist -- key 列表(out)
  274 +//CStringArray &valuelist -- 对应key的值(out)
  275 +BOOL CIniFile::ReadSection(LPCTSTR strSection,CStringArray &keylist,CStringArray &valuelist)
  276 +{
  277 + if(_tcslen(strSection)==0)
  278 + {
  279 + return false;
  280 + }
  281 +
  282 + keylist.RemoveAll();
  283 + valuelist.RemoveAll();
  284 +
  285 + TCHAR tempbufer[65536],*ppp;
  286 + memset(tempbufer,0,sizeof(tempbufer));
  287 + GetPrivateProfileSection(strSection,tempbufer,65535,m_strFileName);
  288 +
  289 + ppp=tempbufer;
  290 +
  291 + CString sss;
  292 + int pos;
  293 + while(*ppp != '\0')
  294 + {
  295 + sss=ppp;
  296 + ppp+=sss.GetLength()+1;
  297 +
  298 + pos=sss.Find('=',0);
  299 +
  300 + keylist.Add(sss.Left(pos));
  301 + valuelist.Add(sss.Right(sss.GetLength()-pos-1));
  302 + }
  303 + return TRUE;
  304 +}
... ...
  1 +
  2 +#if !defined(AFX_INIFILE_H__INCLUDED_)
  3 +#define AFX_INIFILE_H__INCLUDED_
  4 +
  5 +#if _MSC_VER > 1000
  6 +#pragma once
  7 +#endif // _MSC_VER > 1000
  8 +//include header file here
  9 +#include <afxtempl.h>
  10 +/*
  11 +int ,long , long long类型的范围值
  12 +unsigned int 0~4294967295
  13 +int 2147483648~2147483647
  14 +unsigned long 0~4294967295
  15 +long 2147483648~2147483647
  16 +long long的最大值:9223372036854775807
  17 +long long的最小值:-9223372036854775808
  18 +unsigned long long的最大值:18446744073709551615
  19 + __int64的最大值:9223372036854775807
  20 + __int64的最小值:-9223372036854775808
  21 + unsigned __int64的最大值:18446744073709551615
  22 +*/
  23 +
  24 +class CIniFile
  25 +{
  26 +public:
  27 + CIniFile(void);
  28 + CIniFile(LPCTSTR strFileName);
  29 + ~CIniFile(void);
  30 +
  31 +private:
  32 + CString m_strFileName;
  33 +
  34 +public:
  35 + void SetIniFileName(LPCTSTR strFileName);
  36 +
  37 + LPCTSTR GetIniFileName();
  38 +
  39 + BOOL WriteString(LPCTSTR strSection, LPCTSTR strKey, LPCTSTR strValue);
  40 + BOOL WriteInt(LPCTSTR strSection, LPCTSTR strKey, int iValue);
  41 + //默认保持6位小数点,可以修改
  42 + BOOL WriteDouble(LPCTSTR strSection, LPCTSTR strKey, double fValue);
  43 + //默认保持6位小数点,可以修改
  44 + BOOL WriteFloat(LPCTSTR strSection, LPCTSTR strKey, float fValue);
  45 + BOOL WriteLong(LPCTSTR strSection, LPCTSTR strKey, long n32Value);
  46 + BOOL WriteDWORD(LPCTSTR strSection, LPCTSTR strKey, DWORD u32Value);
  47 + //true--1 false--0
  48 + BOOL WriteBool(LPCTSTR strSection, LPCTSTR strKey, bool bValue);
  49 +
  50 + CString ReadString(LPCTSTR strSection, LPCTSTR strKey, CString strDefault = "ERROR");
  51 + int ReadInt(LPCTSTR strSection, LPCTSTR strKey, int iDefault = -9999999);
  52 + double ReadDouble(LPCTSTR strSection, LPCTSTR strKey, double fDefualt = -0.000001);
  53 + long ReadLong(LPCTSTR strSection, LPCTSTR strKey, long n32Defualt = -9999999);
  54 + DWORD ReadDWORD(LPCTSTR strSection, LPCTSTR strKey, DWORD u32Defualt = 9999999);
  55 + float ReadFloat(LPCTSTR strSection, LPCTSTR strKey, float fDefualt = -0.000001);
  56 +
  57 + //1为true,其它值为false
  58 + bool ReadBool(LPCTSTR strSection, LPCTSTR strKey, bool bDefualt = false);
  59 +
  60 + //删除某个sectionsection
  61 + BOOL DeleteSection(LPCTSTR strSection);
  62 +
  63 + //删除某个Section下的某个Key
  64 + BOOL DeleteKey(LPCTSTR strSection,LPCTSTR strKey);
  65 +
  66 + // 获取所有的Section的列表
  67 + //parameters:
  68 + //CStringArray &SectionList -- 获取到的Section列表(out)
  69 + BOOL GetSectionList(CStringArray &SectionList);
  70 + //获取某个Section下的Key的列表
  71 + //parameters:
  72 + //LPCTSTR strSection -- Section(in)
  73 + //CStringArray &keylist -- 获取到的key 列表(out)
  74 + BOOL GetKeyList(LPCTSTR strSection,CStringArray &KeyList);
  75 +
  76 + //写Section
  77 + //parameters:
  78 + //LPCTSTR strSection -- Section(in)
  79 + //CStringArray &keylist -- key 列表(in)
  80 + //CStringArray &valuelist -- 对应key的值(in)
  81 + BOOL WriteSection(LPCTSTR strSection,CStringArray &keylist,CStringArray &valuelist);
  82 +
  83 + //读Section
  84 + //parameters:
  85 + //LPCTSTR strSection -- Section(in)
  86 + //CStringArray &keylist -- key 列表(out)
  87 + //CStringArray &valuelist -- 对应key的值(out)
  88 + BOOL ReadSection(LPCTSTR strSection,CStringArray &keylist,CStringArray &valuelist);
  89 + /**/
  90 +};
  91 +#endif//#if !defined(AFX_INIFILE_H__INCLUDED_)
\ No newline at end of file
... ...
... ... @@ -3,8 +3,3 @@
3 3 // stdafx.obj will contain the pre-compiled type information
4 4
5 5 #include "stdafx.h"
6   -
7   -app_main_data_struct g_AppMainData;
8   -CByteArray g_pBufferBinFile[20];
9   -
10   -
... ...
... ... @@ -21,39 +21,6 @@
21 21 #endif // _AFX_NO_AFXCMN_SUPPORT
22 22 #include <string>
23 23
24   -
25   -#define MAX_PATH 260
26   -
27   -
28   -typedef struct
29   -{
30   - int aBandrate;
31   - char bcheck;
32   - char cdatabit;
33   - char dstopbit;
34   - char estreambit;
35   -}com_config_struct;
36   -typedef struct
37   -{
38   - short ary_myComPortEar[10];
39   - short ary_myComPortUsb[10];
40   - short int_myComPortDebug;
41   - com_config_struct com_config;
42   - BOOL if_same_sn;
43   - char SN_head[13];
44   - int SN_start;
45   - int SN_end;
46   - int SN_cur;
47   - int int_ResendTime;
48   - char g_pSetupFilepath[MAX_PATH];
49   - char g_pFilePathUsb[MAX_PATH];
50   - char g_pFilePathEar[MAX_PATH];
51   -}app_main_data_struct;
52   -
53   -extern app_main_data_struct g_AppMainData;
54   -
55   -
56   -
57 24 //{{AFX_INSERT_LOCATION}}
58 25 // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
59 26
... ...
  1 +// SysConfig.cpp : implementation file
  2 +//
  3 +
  4 +#include "stdafx.h"
  5 +#include "BlueFlashTool.h"
  6 +#include "SysConfig.h"
  7 +
  8 +#ifdef _DEBUG
  9 +#define new DEBUG_NEW
  10 +#undef THIS_FILE
  11 +static char THIS_FILE[] = __FILE__;
  12 +#endif
  13 +
  14 +/////////////////////////////////////////////////////////////////////////////
  15 +// CSysConfig dialog
  16 +
  17 +
  18 +CSysConfig::CSysConfig(CWnd* pParent /*=NULL*/)
  19 + : CDialog(CSysConfig::IDD, pParent)
  20 + , mystrSNHeader(_T(""))
  21 + , myintBandrate(_T("921600"))
  22 + , myAllowSave(true)
  23 +{
  24 + //{{AFX_DATA_INIT(CSysConfig)
  25 + mystrFilePathUsb = _T("");
  26 + mystrFilePathEar = _T("");
  27 + mystrSnEnd = _T("");
  28 + mystrSnStart = _T("");
  29 + //}}AFX_DATA_INIT
  30 +}
  31 +
  32 +
  33 +void CSysConfig::DoDataExchange(CDataExchange* pDX)
  34 +{
  35 + CDialog::DoDataExchange(pDX);
  36 + //{{AFX_DATA_MAP(CSysConfig)
  37 + DDX_Control(pDX, IDC_COMPORT_EAR01, mylistEar01);
  38 + DDX_Control(pDX, IDC_COMPORT_EAR02, mylistEar02);
  39 + DDX_Control(pDX, IDC_COMPORT_EAR03, mylistEar03);
  40 + DDX_Control(pDX, IDC_COMPORT_EAR04, mylistEar04);
  41 + DDX_Control(pDX, IDC_COMPORT_EAR05, mylistEar05);
  42 + DDX_Control(pDX, IDC_COMPORT_EAR06, mylistEar06);
  43 + DDX_Control(pDX, IDC_COMPORT_EAR07, mylistEar07);
  44 + DDX_Control(pDX, IDC_COMPORT_EAR08, mylistEar08);
  45 + DDX_Control(pDX, IDC_COMPORT_EAR09, mylistEar09);
  46 + DDX_Control(pDX, IDC_COMPORT_EAR10, mylistEar10);
  47 + DDX_Control(pDX, IDC_COMPORT_USB01, mylistUsb01);
  48 + DDX_Control(pDX, IDC_COMPORT_USB02, mylistUsb02);
  49 + DDX_Control(pDX, IDC_COMPORT_USB03, mylistUsb03);
  50 + DDX_Control(pDX, IDC_COMPORT_USB04, mylistUsb04);
  51 + DDX_Control(pDX, IDC_COMPORT_USB05, mylistUsb05);
  52 + DDX_Control(pDX, IDC_COMPORT_USB06, mylistUsb06);
  53 + DDX_Control(pDX, IDC_COMPORT_USB07, mylistUsb07);
  54 + DDX_Control(pDX, IDC_COMPORT_USB08, mylistUsb08);
  55 + DDX_Control(pDX, IDC_COMPORT_USB09, mylistUsb09);
  56 + DDX_Control(pDX, IDC_COMPORT_USB10, mylistUsb10);
  57 + DDX_Control(pDX, IDC_COMBO_STEAM, mylistStreambit);
  58 + DDX_Control(pDX, IDC_COMBO_STOPBIT, mylistStopbit);
  59 + DDX_Control(pDX, IDC_COMBO_DATABIT, mylistDatabit);
  60 + DDX_Control(pDX, IDC_COMBO_CHECK, mylistCheck);
  61 + DDX_Control(pDX, IDC_CHECK_SAME_SN, myCheckSameSn);
  62 + DDX_Text(pDX, IDC_EDIT_USB_PATH, mystrFilePathUsb);
  63 + DDX_Text(pDX, IDC_EDIT_EAR_PATH, mystrFilePathEar);
  64 + DDX_Text(pDX, IDC_EDIT_SN_END, mystrSnEnd);
  65 + DDX_Text(pDX, IDC_EDIT_SN_START, mystrSnStart);
  66 + //}}AFX_DATA_MAP
  67 + DDX_Text(pDX, IDC_EDIT_SN_HEADER, mystrSNHeader);
  68 + DDV_MaxChars(pDX, mystrSnStart, 5);
  69 + DDV_MaxChars(pDX, mystrSnEnd, 5);
  70 + DDX_CBString(pDX, IDC_COMBO_BAND, myintBandrate);
  71 +}
  72 +
  73 +
  74 +BEGIN_MESSAGE_MAP(CSysConfig, CDialog)
  75 + //{{AFX_MSG_MAP(CSysConfig)
  76 + ON_BN_CLICKED(IDC_CHECK_SAME_SN, OnCheckSameSn)
  77 + ON_BN_CLICKED(IDC_BUTTON_SECPATH_EAR, OnButtonSecpathEar)
  78 + ON_BN_CLICKED(IDC_BUTTON_SECPATH_USB, OnButtonSecpathUsb)
  79 + //}}AFX_MSG_MAP
  80 + ON_BN_CLICKED(IDOK, &CSysConfig::OnBnClickedOk)
  81 + ON_CBN_SELCHANGE(IDC_COMPORT_EAR01, &CSysConfig::OnCbnSelchangeComportEarUsb)
  82 + ON_CBN_SELCHANGE(IDC_COMPORT_EAR02, &CSysConfig::OnCbnSelchangeComportEarUsb)
  83 + ON_CBN_SELCHANGE(IDC_COMPORT_EAR03, &CSysConfig::OnCbnSelchangeComportEarUsb)
  84 + ON_CBN_SELCHANGE(IDC_COMPORT_EAR04, &CSysConfig::OnCbnSelchangeComportEarUsb)
  85 + ON_CBN_SELCHANGE(IDC_COMPORT_EAR05, &CSysConfig::OnCbnSelchangeComportEarUsb)
  86 + ON_CBN_SELCHANGE(IDC_COMPORT_EAR06, &CSysConfig::OnCbnSelchangeComportEarUsb)
  87 + ON_CBN_SELCHANGE(IDC_COMPORT_EAR07, &CSysConfig::OnCbnSelchangeComportEarUsb)
  88 + ON_CBN_SELCHANGE(IDC_COMPORT_EAR08, &CSysConfig::OnCbnSelchangeComportEarUsb)
  89 + ON_CBN_SELCHANGE(IDC_COMPORT_EAR09, &CSysConfig::OnCbnSelchangeComportEarUsb)
  90 + ON_CBN_SELCHANGE(IDC_COMPORT_EAR10, &CSysConfig::OnCbnSelchangeComportEarUsb)
  91 + ON_CBN_SELCHANGE(IDC_COMPORT_USB01, &CSysConfig::OnCbnSelchangeComportEarUsb)
  92 + ON_CBN_SELCHANGE(IDC_COMPORT_USB02, &CSysConfig::OnCbnSelchangeComportEarUsb)
  93 + ON_CBN_SELCHANGE(IDC_COMPORT_USB03, &CSysConfig::OnCbnSelchangeComportEarUsb)
  94 + ON_CBN_SELCHANGE(IDC_COMPORT_USB04, &CSysConfig::OnCbnSelchangeComportEarUsb)
  95 + ON_CBN_SELCHANGE(IDC_COMPORT_USB05, &CSysConfig::OnCbnSelchangeComportEarUsb)
  96 + ON_CBN_SELCHANGE(IDC_COMPORT_USB06, &CSysConfig::OnCbnSelchangeComportEarUsb)
  97 + ON_CBN_SELCHANGE(IDC_COMPORT_USB07, &CSysConfig::OnCbnSelchangeComportEarUsb)
  98 + ON_CBN_SELCHANGE(IDC_COMPORT_USB08, &CSysConfig::OnCbnSelchangeComportEarUsb)
  99 + ON_CBN_SELCHANGE(IDC_COMPORT_USB09, &CSysConfig::OnCbnSelchangeComportEarUsb)
  100 + ON_CBN_SELCHANGE(IDC_COMPORT_USB10, &CSysConfig::OnCbnSelchangeComportEarUsb)
  101 +
  102 +END_MESSAGE_MAP()
  103 +
  104 +/////////////////////////////////////////////////////////////////////////////
  105 +// CSysConfig message handlers
  106 +
  107 +void CSysConfig::OnCheckSameSn()
  108 +{
  109 + // TODO: Add your control notification handler code here
  110 + g_AppMainData.if_same_sn = myCheckSameSn.GetCheck();
  111 + GetDlgItem(IDC_EDIT_SN_START)->EnableWindow(!g_AppMainData.if_same_sn);
  112 + GetDlgItem(IDC_EDIT_SN_END)->EnableWindow(!g_AppMainData.if_same_sn);
  113 + GetDlgItem(IDC_EDIT_SN_HEADER)->EnableWindow(!g_AppMainData.if_same_sn);
  114 +}
  115 +
  116 +BOOL CSysConfig::OnInitDialog()
  117 +{
  118 + CDialog::OnInitDialog();
  119 + //数据初始化
  120 + mystrSNHeader.Format("%s",g_AppMainData.SN_head);
  121 + mystrSnStart.Format("%05d",g_AppMainData.SN_cur);
  122 + mystrSnEnd.Format("%05d",g_AppMainData.SN_end);
  123 + mylistCheck.SetCurSel(g_AppMainData.com_config.bcheck);
  124 + mylistDatabit.SetCurSel(3);
  125 + mylistStopbit.SetCurSel(0);
  126 + mylistStreambit.SetCurSel(0);
  127 + //UI 初始化
  128 + myCheckSameSn.SetCheck(g_AppMainData.if_same_sn);
  129 + GetDlgItem(IDC_EDIT_SN_START)->EnableWindow(!g_AppMainData.if_same_sn);
  130 + GetDlgItem(IDC_EDIT_SN_END)->EnableWindow(!g_AppMainData.if_same_sn);
  131 + GetDlgItem(IDC_EDIT_SN_HEADER)->EnableWindow(!g_AppMainData.if_same_sn);
  132 + mylistCheck.EnableWindow(FALSE);
  133 + mylistDatabit.EnableWindow(FALSE);
  134 + mylistStopbit.EnableWindow(FALSE);
  135 + mylistStreambit.EnableWindow(FALSE);
  136 + mylistEar01.SetCurSel(g_AppMainData.ary_myComPortEar[0]);
  137 + mylistEar02.SetCurSel(g_AppMainData.ary_myComPortEar[1]);
  138 + mylistEar03.SetCurSel(g_AppMainData.ary_myComPortEar[2]);
  139 + mylistEar04.SetCurSel(g_AppMainData.ary_myComPortEar[3]);
  140 + mylistEar05.SetCurSel(g_AppMainData.ary_myComPortEar[4]);
  141 + mylistEar06.SetCurSel(g_AppMainData.ary_myComPortEar[5]);
  142 + mylistEar07.SetCurSel(g_AppMainData.ary_myComPortEar[6]);
  143 + mylistEar08.SetCurSel(g_AppMainData.ary_myComPortEar[7]);
  144 + mylistEar09.SetCurSel(g_AppMainData.ary_myComPortEar[8]);
  145 + mylistEar10.SetCurSel(g_AppMainData.ary_myComPortEar[9]);
  146 +
  147 + mylistUsb01.SetCurSel(g_AppMainData.ary_myComPortUsb[0]);
  148 + mylistUsb02.SetCurSel(g_AppMainData.ary_myComPortUsb[1]);
  149 + mylistUsb03.SetCurSel(g_AppMainData.ary_myComPortUsb[2]);
  150 + mylistUsb04.SetCurSel(g_AppMainData.ary_myComPortUsb[3]);
  151 + mylistUsb05.SetCurSel(g_AppMainData.ary_myComPortUsb[4]);
  152 + mylistUsb06.SetCurSel(g_AppMainData.ary_myComPortUsb[5]);
  153 + mylistUsb07.SetCurSel(g_AppMainData.ary_myComPortUsb[6]);
  154 + mylistUsb08.SetCurSel(g_AppMainData.ary_myComPortUsb[7]);
  155 + mylistUsb09.SetCurSel(g_AppMainData.ary_myComPortUsb[8]);
  156 + mylistUsb10.SetCurSel(g_AppMainData.ary_myComPortUsb[9]);
  157 +
  158 + mystrFilePathEar = g_AppMainData.FilePathEar;
  159 + mystrFilePathUsb = g_AppMainData.FilePathUsb;
  160 +
  161 + UpdateData(FALSE);
  162 +
  163 + return TRUE; // return TRUE unless you set the focus to a control
  164 + // EXCEPTION: OCX Property Pages should return FALSE
  165 +}
  166 +
  167 +void CSysConfig::OnButtonSecpathEar()
  168 +{
  169 + // TODO: Add your control notification handler code here
  170 + char szFilter[]="bin files(*.*)|*.*";
  171 + CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST|OFN_EXPLORER|OFN_ENABLESIZING|0x10000000, szFilter, this);
  172 + dlg.m_ofn.lpstrTitle = _T("选择耳机软件...");
  173 + if(dlg.DoModal() == IDOK)
  174 + mystrFilePathEar = dlg.GetPathName();
  175 + CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_EAR_PATH);
  176 + pEdit->SetWindowText(mystrFilePathEar);
  177 +
  178 +}
  179 +
  180 +void CSysConfig::OnButtonSecpathUsb()
  181 +{
  182 + // TODO: Add your control notification handler code here
  183 + char szFilter[]="bin files(*.*)|*.*";
  184 + CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST|OFN_EXPLORER|OFN_ENABLESIZING|0x10000000, szFilter, this);
  185 + dlg.m_ofn.lpstrTitle = _T("选择发射器软件...");
  186 + if(dlg.DoModal() == IDOK)
  187 + mystrFilePathUsb = dlg.GetPathName();
  188 + CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_USB_PATH);
  189 + pEdit->SetWindowText(mystrFilePathUsb);
  190 +
  191 +}
  192 +
  193 +void CSysConfig::OnBnClickedOk()
  194 +{
  195 + int loop = 0;
  196 + UpdateData(TRUE);
  197 + if (myAllowSave == false)
  198 + {
  199 + MessageBox("请核对端口配置参数是否有误", "Warning");
  200 + return;
  201 + }
  202 + if (!myCheckSameSn.GetCheck())
  203 + {
  204 + if (mystrSnStart.GetLength()<5 ||mystrSnEnd.GetLength()<5 )
  205 + {
  206 + MessageBox("序号太短", "Warning");
  207 + return;
  208 + }
  209 + if (mystrSnStart == mystrSnEnd)
  210 + {
  211 + MessageBox("结束序号与起始序号不能相同", "Warning");
  212 + return;
  213 + }
  214 + char *p_SnStart = mystrSnStart.GetBuffer(5);
  215 + char *p_SnEnd = mystrSnEnd.GetBuffer(5);
  216 + g_AppMainData.SN_start = atoi(p_SnStart);
  217 + g_AppMainData.SN_end = atoi(p_SnEnd);
  218 + g_AppMainData.SN_cur = g_AppMainData.SN_start;
  219 + g_AppMainData.if_same_sn = TRUE;
  220 + }
  221 + else
  222 + {
  223 + g_AppMainData.if_same_sn = FALSE;
  224 + }
  225 +
  226 +
  227 + g_AppMainData.ary_myComPortEar[0] = mylistEar01.GetCurSel();
  228 + g_AppMainData.ary_myComPortEar[1] = mylistEar02.GetCurSel();
  229 + g_AppMainData.ary_myComPortEar[2] = mylistEar03.GetCurSel();
  230 + g_AppMainData.ary_myComPortEar[3] = mylistEar04.GetCurSel();
  231 + g_AppMainData.ary_myComPortEar[4] = mylistEar05.GetCurSel();
  232 + g_AppMainData.ary_myComPortEar[5] = mylistEar06.GetCurSel();
  233 + g_AppMainData.ary_myComPortEar[6] = mylistEar07.GetCurSel();
  234 + g_AppMainData.ary_myComPortEar[7] = mylistEar08.GetCurSel();
  235 + g_AppMainData.ary_myComPortEar[8] = mylistEar09.GetCurSel();
  236 + g_AppMainData.ary_myComPortEar[9] = mylistEar10.GetCurSel();
  237 +
  238 + g_AppMainData.ary_myComPortUsb[0] = mylistUsb01.GetCurSel();
  239 + g_AppMainData.ary_myComPortUsb[1] = mylistUsb02.GetCurSel();
  240 + g_AppMainData.ary_myComPortUsb[2] = mylistUsb03.GetCurSel();
  241 + g_AppMainData.ary_myComPortUsb[3] = mylistUsb04.GetCurSel();
  242 + g_AppMainData.ary_myComPortUsb[4] = mylistUsb05.GetCurSel();
  243 + g_AppMainData.ary_myComPortUsb[5] = mylistUsb06.GetCurSel();
  244 + g_AppMainData.ary_myComPortUsb[6] = mylistUsb07.GetCurSel();
  245 + g_AppMainData.ary_myComPortUsb[7] = mylistUsb08.GetCurSel();
  246 + g_AppMainData.ary_myComPortUsb[8] = mylistUsb09.GetCurSel();
  247 + g_AppMainData.ary_myComPortUsb[9] = mylistUsb10.GetCurSel();
  248 + g_AppMainData.if_same_sn = myCheckSameSn.GetCheck();
  249 + g_AppMainData.com_config.aBandrate=atoi(myintBandrate.GetBuffer(0));
  250 + g_AppMainData.com_config.bcheck = mylistCheck.GetCurSel();
  251 + g_AppMainData.com_config.cdatabit = mylistDatabit.GetCurSel();
  252 + g_AppMainData.com_config.dstopbit = mylistStopbit.GetCurSel();
  253 + g_AppMainData.com_config.estreambit = mylistStreambit.GetCurSel();
  254 + if (mystrFilePathEar == "")
  255 + {
  256 + MessageBox("未选择耳机软件", "Warning");
  257 + return;
  258 + }
  259 + if (mystrFilePathUsb == "")
  260 + {
  261 + MessageBox("未选择发射器软件", "Warning");
  262 + return;
  263 + }
  264 + g_AppMainData.FilePathEar = mystrFilePathEar;
  265 + g_AppMainData.FilePathUsb = mystrFilePathUsb;
  266 +
  267 + g_pmainapp->SaveConfigs();
  268 +
  269 +
  270 + CDialog::OnOK();
  271 +}
  272 +
  273 +void CSysConfig::OnCbnSelchangeComportEarUsb()
  274 +{
  275 + int currentID,loop,cursel;
  276 + CComboBox *plist;
  277 + currentID = GetFocus()->GetDlgCtrlID();
  278 + plist =(CComboBox *)GetDlgItem(currentID);
  279 + cursel = plist->GetCurSel();
  280 + if ( cursel== 1)
  281 + {
  282 + MessageBox("无效COM口", "Warning");
  283 + myAllowSave = false;
  284 + return;
  285 + }
  286 + for (loop = 0;loop<10;loop++)
  287 + {
  288 + if (cursel == g_AppMainData.ary_myComPortEar[loop] && loop != currentID-IDC_COMPORT_EAR01 && g_AppMainData.ary_myComPortEar[loop]!=0)
  289 + {
  290 + MessageBox("端口重复", "Warning");
  291 + myAllowSave = false;
  292 + return;
  293 + }
  294 + }
  295 + for (loop = 10;loop<20;loop++)
  296 + {
  297 + if (cursel == g_AppMainData.ary_myComPortUsb[loop] && loop != currentID-IDC_COMPORT_EAR01 && g_AppMainData.ary_myComPortUsb[loop] != 0)
  298 + {
  299 + MessageBox("端口重复", "Warning");
  300 + myAllowSave = false;
  301 + return;
  302 + }
  303 + }
  304 + myAllowSave = true;
  305 +}
... ...
  1 +#if !defined(AFX_SYSCONFIG_H__80AB7013_3975_451D_83C3_A137DEB231FB__INCLUDED_)
  2 +#define AFX_SYSCONFIG_H__80AB7013_3975_451D_83C3_A137DEB231FB__INCLUDED_
  3 +
  4 +#if _MSC_VER > 1000
  5 +#pragma once
  6 +#endif // _MSC_VER > 1000
  7 +// SysConfig.h : header file
  8 +//
  9 +
  10 +/////////////////////////////////////////////////////////////////////////////
  11 +// CSysConfig dialog
  12 +
  13 +class CSysConfig : public CDialog
  14 +{
  15 +// Construction
  16 +public:
  17 + CSysConfig(CWnd* pParent = NULL); // standard constructor
  18 +
  19 +// Dialog Data
  20 + //{{AFX_DATA(CSysConfig)
  21 + enum { IDD = IDD_SYSTEM_CONFIG };
  22 + CComboBox mylistEar01;
  23 + CComboBox mylistEar02;
  24 + CComboBox mylistEar03;
  25 + CComboBox mylistEar04;
  26 + CComboBox mylistEar05;
  27 + CComboBox mylistEar06;
  28 + CComboBox mylistEar07;
  29 + CComboBox mylistEar08;
  30 + CComboBox mylistEar09;
  31 + CComboBox mylistEar10;
  32 + CComboBox mylistUsb01;
  33 + CComboBox mylistUsb02;
  34 + CComboBox mylistUsb03;
  35 + CComboBox mylistUsb04;
  36 + CComboBox mylistUsb05;
  37 + CComboBox mylistUsb06;
  38 + CComboBox mylistUsb07;
  39 + CComboBox mylistUsb08;
  40 + CComboBox mylistUsb09;
  41 + CComboBox mylistUsb10;
  42 + CComboBox mylistStreambit;
  43 + CComboBox mylistStopbit;
  44 + CComboBox mylistDatabit;
  45 + CComboBox mylistCheck;
  46 + CButton myCheckSameSn;
  47 + CString mystrFilePathUsb;
  48 + CString mystrFilePathEar;
  49 + CString mystrSnEnd;
  50 + CString mystrSnStart;
  51 + //}}AFX_DATA
  52 +
  53 +
  54 +// Overrides
  55 + // ClassWizard generated virtual function overrides
  56 + //{{AFX_VIRTUAL(CSysConfig)
  57 + protected:
  58 + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  59 + //}}AFX_VIRTUAL
  60 +
  61 +// Implementation
  62 +protected:
  63 +
  64 + // Generated message map functions
  65 + //{{AFX_MSG(CSysConfig)
  66 + afx_msg void OnCheckSameSn();
  67 + virtual BOOL OnInitDialog();
  68 + afx_msg void OnButtonSecpathEar();
  69 + afx_msg void OnButtonSecpathUsb();
  70 + //}}AFX_MSG
  71 + DECLARE_MESSAGE_MAP()
  72 +public:
  73 + afx_msg void OnBnClickedOk();
  74 + CString mystrSNHeader;
  75 + // 波特率
  76 + CString myintBandrate;
  77 + afx_msg void OnCbnSelchangeComportEarUsb();
  78 + // 有效数据才允许保存
  79 + bool myAllowSave;
  80 +};
  81 +
  82 +//{{AFX_INSERT_LOCATION}}
  83 +// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  84 +
  85 +#endif // !defined(AFX_SYSCONFIG_H__80AB7013_3975_451D_83C3_A137DEB231FB__INCLUDED_)
... ...
1 1 //{{NO_DEPENDENCIES}}
2   -// Microsoft Developer Studio generated include file.
  2 +// Microsoft Visual C++ generated include file.
3 3 // Used by BlueFlashTool.rc
4 4 //
5 5 #define IDD_BLUEFLASHTOOL_DIALOG 102
6 6 #define IDR_MAINFRAME 128
7 7 #define IDD_SYSTEM_CONFIG 131
8 8 #define IDC_STATIC_GROUP01 1000
9   -#define IDC_CHECK_EAR01 1001
10   -#define IDC_CHECK_USB01 1002
  9 +#define IDC_CHECK_EAR1 1001
  10 +#define IDC_CHECK_USB1 1002
11 11 #define IDC_PROGRESS_EAR01 1003
12 12 #define IDC_PROGRESS_USB01 1004
13 13 #define IDC_BUTTON_START_EAR01 1005
... ... @@ -100,7 +100,7 @@
100 100 #define IDC_MSCOMM19 1093
101 101 #define IDC_MSCOMM20 1094
102 102 #define IDC_DEBUG_MESSAGE 1095
103   -#define IDC_CHECK1 1096
  103 +#define IDC_CHECK_SAME_SN 1096
104 104 #define IDC_EDIT_SN_START 1097
105 105 #define IDC_EDIT_SN_END 1098
106 106 #define IDC_COMBO_BAND 1099
... ... @@ -108,39 +108,42 @@
108 108 #define IDC_COMBO_DATABIT 1101
109 109 #define IDC_COMBO_STOPBIT 1102
110 110 #define IDC_COMBO_STEAM 1103
111   -#define IDC_COMBO6 1104
112   -#define IDC_COMBO7 1105
113   -#define IDC_COMBO8 1106
114   -#define IDC_COMBO9 1107
115   -#define IDC_COMBO10 1108
116   -#define IDC_COMBO11 1109
117   -#define IDC_COMBO12 1110
118   -#define IDC_COMBO13 1111
119   -#define IDC_COMBO14 1112
120   -#define IDC_COMBO15 1113
121   -#define IDC_COMBO16 1114
122   -#define IDC_COMBO17 1115
123   -#define IDC_COMBO18 1116
124   -#define IDC_COMBO19 1117
125   -#define IDC_COMBO20 1118
126   -#define IDC_COMBO21 1119
127   -#define IDC_COMBO22 1120
128   -#define IDC_COMBO23 1121
129   -#define IDC_COMBO24 1122
130   -#define IDC_COMBO25 1123
  111 +#define IDC_COMPORT_EAR01 1104
  112 +#define IDC_COMPORT_EAR02 1105
  113 +#define IDC_COMPORT_EAR03 1106
  114 +#define IDC_COMPORT_EAR04 1107
  115 +#define IDC_COMPORT_EAR05 1108
  116 +#define IDC_COMPORT_EAR06 1109
  117 +#define IDC_COMPORT_EAR07 1110
  118 +#define IDC_COMPORT_EAR08 1111
  119 +#define IDC_COMPORT_EAR09 1112
  120 +#define IDC_COMPORT_EAR10 1113
  121 +#define IDC_COMPORT_USB01 1114
  122 +#define IDC_COMPORT_USB02 1115
  123 +#define IDC_COMPORT_USB03 1116
  124 +#define IDC_COMPORT_USB04 1117
  125 +#define IDC_COMPORT_USB05 1118
  126 +#define IDC_COMPORT_USB06 1119
  127 +#define IDC_COMPORT_USB07 1120
  128 +#define IDC_COMPORT_USB08 1121
  129 +#define IDC_COMPORT_USB09 1122
  130 +#define IDC_COMPORT_USB10 1123
131 131 #define IDC_EDIT_EAR_PATH 1124
132 132 #define IDC_EDIT_USB_PATH 1125
133 133 #define IDC_BUTTON_SECPATH_EAR 1126
134 134 #define IDC_BUTTON_SECPATH_USB 1127
135 135 #define IDC_BUTTON_SAVE 1128
  136 +#define IDC_BUTTON_INIT_COMPORT 1129
  137 +#define IDC_EDIT1 1130
  138 +#define IDC_EDIT_SN_HEADER 1130
136 139
137 140 // Next default values for new objects
138 141 //
139 142 #ifdef APSTUDIO_INVOKED
140 143 #ifndef APSTUDIO_READONLY_SYMBOLS
141   -#define _APS_NEXT_RESOURCE_VALUE 132
  144 +#define _APS_NEXT_RESOURCE_VALUE 134
142 145 #define _APS_NEXT_COMMAND_VALUE 32771
143   -#define _APS_NEXT_CONTROL_VALUE 1129
  146 +#define _APS_NEXT_CONTROL_VALUE 1131
144 147 #define _APS_NEXT_SYMED_VALUE 101
145 148 #endif
146 149 #endif
... ...
Please register or login to post a comment