├── .gitignore
├── LICENSE
├── README.md
├── TCP2COM.cbp
├── TCP2COM.depend
├── TCP2COM.layout
├── TCP2COMApp.cpp
├── TCP2COMApp.h
├── TCP2COMMain.cpp
├── TCP2COMMain.h
├── bin
└── Debug
│ ├── com0com_x64
│ ├── ReadMe.txt
│ ├── cncport.inf
│ ├── com0com.cat
│ ├── com0com.inf
│ ├── com0com.sys
│ └── comport.inf
│ ├── com0com_x86
│ ├── ReadMe.txt
│ ├── cncport.inf
│ ├── com0com.cat
│ ├── com0com.inf
│ ├── com0com.sys
│ └── comport.inf
│ └── config.ini
├── include
├── CommListenerBase.h
├── CommServiceBase.h
├── FactoryPreset.h
├── FrameObserver.h
├── NetCommService.h
├── SerialCommService.h
├── SerialPortListener.h
├── TCPServerListener.h
└── VirtualCom.h
├── obj
└── Debug
│ └── resource.res
├── resource.rc
├── src
├── CommServiceBase.cpp
├── FactoryPreset.cpp
├── NetCommService.cpp
├── SerialCommService.cpp
├── SerialPortListener.cpp
├── TCPServerListener.cpp
└── VirtualCom.cpp
└── wxsmith
└── TCP2COMdialog.wxs
/.gitignore:
--------------------------------------------------------------------------------
1 | # Prerequisites
2 | *.d
3 |
4 | # Compiled Object files
5 | *.slo
6 | *.lo
7 | *.o
8 | *.obj
9 |
10 | # Precompiled Headers
11 | *.gch
12 | *.pch
13 |
14 | # Compiled Dynamic libraries
15 | *.so
16 | *.dylib
17 | *.dll
18 |
19 | # Fortran module files
20 | *.mod
21 | *.smod
22 |
23 | # Compiled Static libraries
24 | *.lai
25 | *.la
26 | *.a
27 | *.lib
28 |
29 | # Executables
30 | *.exe
31 | *.out
32 | *.app
33 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 维新科技工作室
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 项目名称:TCP2COM
2 | 网络转串口软件(基于com0com)
3 |
4 | 该软件主要用于工业级物联网通信或者传感器组网等应用,
5 | 主要实现的功能是将TCP网络通信透明转发到串口。
6 |
7 | 实现原理主要使用类似虚拟串口之类的软件,从网络
8 | 接收数据流并将数据流写入虚拟串口对的输入端口,
9 | 这时就可以使用第三方软件或者硬件通过串口接收
10 | 网络数据。
11 |
12 | 注意:第一次使用该软件时必须先“安装驱动”。
13 |
14 |
--------------------------------------------------------------------------------
/TCP2COM.cbp:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
--------------------------------------------------------------------------------
/TCP2COM.depend:
--------------------------------------------------------------------------------
1 | # depslib dependency file v1.0
2 | 1557363798 source:e:\c_proj\tcp2com\resource.rc
3 | "wx/msw/wx.rc"
4 |
5 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wx.rc
6 |
7 | "wx/msw/wince/wince.rc"
8 | "wx/msw/rcdefs.h"
9 |
10 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wince\wince.rc
11 |
12 | "wx/msw/wince/resources.h"
13 | "wx/msw/wince/smartphone.rc"
14 |
15 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wince\resources.h
16 |
17 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wince\smartphone.rc
18 |
19 |
20 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\rcdefs.h
21 |
22 | 1557197439 source:e:\c_proj\tcp2com\tcp2comapp.cpp
23 | "TCP2COMApp.h"
24 | "TCP2COMMain.h"
25 |
26 |
27 | 1557197439 e:\c_proj\tcp2com\tcp2comapp.h
28 |
29 |
30 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\app.h
31 | "wx/event.h"
32 | "wx/eventfilter.h"
33 | "wx/build.h"
34 | "wx/cmdargs.h"
35 | "wx/init.h"
36 | "wx/intl.h"
37 | "wx/log.h"
38 | "wx/unix/app.h"
39 | "wx/msw/app.h"
40 | "wx/motif/app.h"
41 | "wx/dfb/app.h"
42 | "wx/gtk/app.h"
43 | "wx/gtk1/app.h"
44 | "wx/x11/app.h"
45 | "wx/osx/app.h"
46 | "wx/cocoa/app.h"
47 | "wx/os2/app.h"
48 | "wx/univ/theme.h"
49 |
50 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\event.h
51 | "wx/defs.h"
52 | "wx/cpp.h"
53 | "wx/object.h"
54 | "wx/clntdata.h"
55 | "wx/gdicmn.h"
56 | "wx/cursor.h"
57 | "wx/mousestate.h"
58 | "wx/dynarray.h"
59 | "wx/thread.h"
60 | "wx/tracker.h"
61 | "wx/typeinfo.h"
62 | "wx/any.h"
63 | "wx/meta/convertible.h"
64 | "wx/meta/removeref.h"
65 |
66 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\defs.h
67 | "wx/platform.h"
68 | "wx/version.h"
69 | "wx/dlimpexp.h"
70 |
71 | "wx/debug.h"
72 |
73 |
74 | "wx/windowid.h"
75 |
76 | "wx/msw/winundef.h"
77 | "wx/features.h"
78 |
79 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\platform.h
80 |
81 |
82 |
83 | "wx/osx/config_xcode.h"
84 | "wx/android/config_android.h"
85 | "wx/compiler.h"
86 | "wx/setup.h"
87 | "wx/msw/wince/libraries.h"
88 | "wx/msw/libraries.h"
89 | "wx/msw/gccpriv.h"
90 |
91 |
92 | "wx/chkconf.h"
93 |
94 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\config_xcode.h
95 |
96 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\android\config_android.h
97 |
98 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\compiler.h
99 |
100 | 1520441738 d:\dev_lib\c\wxwidgets\lib\gcc_dll\mswu\wx\setup.h
101 |
102 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wince\libraries.h
103 |
104 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\libraries.h
105 |
106 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\gccpriv.h
107 | <_mingw.h>
108 |
109 |
110 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\chkconf.h
111 | "wx/msw/wince/chkconf.h"
112 | "wx/msw/chkconf.h"
113 | "wx/gtk/chkconf.h"
114 | "wx/gtk/chkconf.h"
115 | "wx/cocoa/chkconf.h"
116 | "wx/osx/chkconf.h"
117 | "wx/os2/chkconf.h"
118 | "wx/dfb/chkconf.h"
119 | "wx/motif/chkconf.h"
120 | "wx/x11/chkconf.h"
121 | "wx/android/chkconf.h"
122 | "wx/unix/chkconf.h"
123 | "wx/univ/chkconf.h"
124 |
125 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wince\chkconf.h
126 |
127 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\chkconf.h
128 |
129 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\chkconf.h
130 |
131 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\chkconf.h
132 |
133 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\chkconf.h
134 | "wx/osx/iphone/chkconf.h"
135 | "wx/osx/carbon/chkconf.h"
136 | "wx/osx/cocoa/chkconf.h"
137 |
138 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\iphone\chkconf.h
139 |
140 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\carbon\chkconf.h
141 |
142 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\cocoa\chkconf.h
143 |
144 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\chkconf.h
145 |
146 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\chkconf.h
147 |
148 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\chkconf.h
149 |
150 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\chkconf.h
151 |
152 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\android\chkconf.h
153 |
154 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\unix\chkconf.h
155 |
156 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\chkconf.h
157 |
158 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\version.h
159 | "wx/cpp.h"
160 |
161 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cpp.h
162 | "wx/compiler.h"
163 |
164 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dlimpexp.h
165 |
166 | 1524107611 d:\dev_lib\c\wxwidgets\include\wx\debug.h
167 |
168 |
169 | "wx/chartype.h"
170 | "wx/cpp.h"
171 | "wx/dlimpexp.h"
172 |
173 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\chartype.h
174 | "wx/platform.h"
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\windowid.h
188 |
189 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\winundef.h
190 |
191 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\features.h
192 |
193 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\object.h
194 | "wx/memory.h"
195 | "wx/xti.h"
196 | "wx/rtti.h"
197 | "wx/xti2.h"
198 | "wx/msw/msvcrt.h"
199 |
200 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\memory.h
201 | "wx/defs.h"
202 | "wx/string.h"
203 | "wx/msgout.h"
204 |
205 |
206 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\string.h
207 | "wx/defs.h"
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 | "wx/wxcrtbase.h"
219 | "wx/strvararg.h"
220 | "wx/buffer.h"
221 | "wx/strconv.h"
222 | "wx/stringimpl.h"
223 | "wx/stringops.h"
224 | "wx/unichar.h"
225 | "wx/tls.h"
226 | "wx/iosfwrap.h"
227 | "wx/crt.h"
228 |
229 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\wxcrtbase.h
230 | "wx/chartype.h"
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\strvararg.h
239 | "wx/platform.h"
240 | "wx/cpp.h"
241 | "wx/chartype.h"
242 | "wx/strconv.h"
243 | "wx/buffer.h"
244 | "wx/unichar.h"
245 |
246 |
247 |
248 | "wx/stringimpl.h"
249 |
250 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\strconv.h
251 | "wx/defs.h"
252 | "wx/chartype.h"
253 | "wx/buffer.h"
254 | "typeinfo.h"
255 |
256 | "wx/fontenc.h"
257 |
258 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\buffer.h
259 | "wx/chartype.h"
260 | "wx/wxcrtbase.h"
261 |
262 |
263 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\typeinfo.h
264 | "wx/defs.h"
265 |
266 |
267 |
268 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\fontenc.h
269 |
270 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\unichar.h
271 | "wx/defs.h"
272 | "wx/chartype.h"
273 | "wx/stringimpl.h"
274 |
275 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\stringimpl.h
276 | "wx/defs.h"
277 | "wx/chartype.h"
278 | "wx/wxcrtbase.h"
279 |
280 | "wx/beforestd.h"
281 |
282 | "wx/afterstd.h"
283 |
284 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\beforestd.h
285 |
286 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\afterstd.h
287 | "wx/msw/winundef.h"
288 |
289 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\stringops.h
290 | "wx/chartype.h"
291 | "wx/stringimpl.h"
292 | "wx/unichar.h"
293 | "wx/buffer.h"
294 |
295 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\tls.h
296 | "wx/defs.h"
297 | "wx/msw/tls.h"
298 | "wx/os2/tls.h"
299 | "wx/unix/tls.h"
300 |
301 |
302 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\tls.h
303 | "wx/msw/wrapwin.h"
304 | "wx/thread.h"
305 | "wx/vector.h"
306 |
307 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wrapwin.h
308 | "wx/platform.h"
309 |
310 |
311 | "wx/msw/winundef.h"
312 |
313 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\thread.h
314 | "wx/defs.h"
315 |
316 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\vector.h
317 | "wx/defs.h"
318 |
319 |
320 | "wx/scopeguard.h"
321 | "wx/meta/movable.h"
322 | "wx/meta/if.h"
323 | "wx/beforestd.h"
324 |
325 | "wx/afterstd.h"
326 |
327 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\scopeguard.h
328 | "wx/defs.h"
329 | "wx/except.h"
330 |
331 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\except.h
332 | "wx/defs.h"
333 |
334 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\meta\movable.h
335 | "wx/meta/pod.h"
336 | "wx/string.h"
337 |
338 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\meta\pod.h
339 | "wx/defs.h"
340 |
341 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\meta\if.h
342 | "wx/defs.h"
343 |
344 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\tls.h
345 | "wx/os2/private.h"
346 | "wx/thread.h"
347 | "wx/vector.h"
348 |
349 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\private.h
350 |
351 |
352 |
353 |
354 |
355 |
356 |
357 | "wx/dlimpexp.h"
358 | "wx/fontenc.h"
359 | "wx/thread.h"
360 |
361 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\unix\tls.h
362 |
363 |
364 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\iosfwrap.h
365 |
366 |
367 | "wx/msw/winundef.h"
368 |
369 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\crt.h
370 | "wx/defs.h"
371 | "wx/chartype.h"
372 | "wx/wxcrt.h"
373 | "wx/wxcrtvararg.h"
374 |
375 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\wxcrt.h
376 | "wx/wxcrtbase.h"
377 | "wx/string.h"
378 |
379 |
380 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\wxcrtvararg.h
381 | "wx/wxcrt.h"
382 | "wx/strvararg.h"
383 | "wx/string.h"
384 |
385 |
386 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msgout.h
387 | "wx/defs.h"
388 | "wx/chartype.h"
389 | "wx/strvararg.h"
390 |
391 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\xti.h
392 | "wx/defs.h"
393 | "wx/xtitypes.h"
394 | "wx/xtihandler.h"
395 |
396 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\xtitypes.h
397 | "wx/defs.h"
398 | "wx/string.h"
399 | "wx/hashmap.h"
400 | "wx/arrstr.h"
401 | "wx/flags.h"
402 | "wx/intl.h"
403 | "wx/log.h"
404 |
405 |
406 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\hashmap.h
407 | "wx/string.h"
408 | "wx/wxcrt.h"
409 |
410 |
411 |
412 |
413 |
414 |
415 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\arrstr.h
416 | "wx/defs.h"
417 | "wx/string.h"
418 | "wx/dynarray.h"
419 | "wx/beforestd.h"
420 |
421 | "wx/afterstd.h"
422 |
423 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dynarray.h
424 | "wx/defs.h"
425 | "wx/beforestd.h"
426 |
427 |
428 | "wx/afterstd.h"
429 |
430 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\flags.h
431 |
432 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\intl.h
433 | "wx/defs.h"
434 | "wx/string.h"
435 | "wx/translation.h"
436 | "wx/fontenc.h"
437 | "wx/language.h"
438 |
439 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\translation.h
440 | "wx/defs.h"
441 | "wx/string.h"
442 | "wx/buffer.h"
443 | "wx/language.h"
444 | "wx/hashmap.h"
445 | "wx/strconv.h"
446 | "wx/scopedptr.h"
447 |
448 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\language.h
449 | "wx/defs.h"
450 |
451 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\scopedptr.h
452 | "wx/defs.h"
453 | "wx/checkeddelete.h"
454 |
455 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\checkeddelete.h
456 | "wx/cpp.h"
457 |
458 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\log.h
459 | "wx/defs.h"
460 | "wx/cpp.h"
461 | "wx/string.h"
462 | "wx/strvararg.h"
463 | "wx/arrstr.h"
464 |
465 | "wx/dynarray.h"
466 | "wx/hashmap.h"
467 | "wx/thread.h"
468 | "wx/iosfwrap.h"
469 | "wx/generic/logg.h"
470 | "wx/cocoa/log.h"
471 |
472 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\logg.h
473 |
474 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\log.h
475 |
476 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\xtihandler.h
477 | "wx/defs.h"
478 | "wx/xti.h"
479 |
480 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\rtti.h
481 | "wx/memory.h"
482 | "wx/flags.h"
483 |
484 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\xti2.h
485 | "wx/xtiprop.h"
486 | "wx/xtictor.h"
487 |
488 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\xtiprop.h
489 | "wx/defs.h"
490 | "wx/xti.h"
491 | "wx/any.h"
492 |
493 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\any.h
494 | "wx/defs.h"
495 |
496 | "wx/string.h"
497 | "wx/meta/if.h"
498 | "wx/typeinfo.h"
499 | "wx/list.h"
500 | "wx/datetime.h"
501 | "wx/variant.h"
502 |
503 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\list.h
504 | "wx/defs.h"
505 | "wx/object.h"
506 | "wx/string.h"
507 | "wx/vector.h"
508 | "wx/beforestd.h"
509 |
510 |
511 |
512 | "wx/afterstd.h"
513 |
514 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\datetime.h
515 | "wx/defs.h"
516 | "wx/msw/wince/time.h"
517 |
518 |
519 | "wx/longlong.h"
520 | "wx/anystr.h"
521 | "wx/dynarray.h"
522 |
523 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wince\time.h
524 |
525 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\longlong.h
526 | "wx/defs.h"
527 | "wx/string.h"
528 |
529 | "wx/iosfwrap.h"
530 |
531 | "wx/strvararg.h"
532 |
533 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\anystr.h
534 | "wx/string.h"
535 |
536 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\variant.h
537 | "wx/defs.h"
538 | "wx/object.h"
539 | "wx/string.h"
540 | "wx/arrstr.h"
541 | "wx/list.h"
542 | "wx/cpp.h"
543 | "wx/longlong.h"
544 | "wx/datetime.h"
545 | "wx/iosfwrap.h"
546 | "wx/any.h"
547 |
548 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\xtictor.h
549 | "wx/defs.h"
550 | "wx/xti.h"
551 |
552 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\msvcrt.h
553 |
554 |
555 |
556 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\clntdata.h
557 | "wx/defs.h"
558 | "wx/string.h"
559 | "wx/hashmap.h"
560 |
561 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gdicmn.h
562 | "wx/defs.h"
563 | "wx/list.h"
564 | "wx/string.h"
565 | "wx/fontenc.h"
566 | "wx/hashmap.h"
567 | "wx/math.h"
568 |
569 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\math.h
570 | "wx/defs.h"
571 |
572 |
573 |
574 |
575 |
576 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cursor.h
577 | "wx/defs.h"
578 | "wx/msw/cursor.h"
579 | "wx/motif/cursor.h"
580 | "wx/gtk/cursor.h"
581 | "wx/gtk1/cursor.h"
582 | "wx/x11/cursor.h"
583 | "wx/dfb/cursor.h"
584 | "wx/osx/cursor.h"
585 | "wx/cocoa/cursor.h"
586 | "wx/os2/cursor.h"
587 | "wx/utils.h"
588 |
589 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\cursor.h
590 | "wx/msw/gdiimage.h"
591 |
592 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\gdiimage.h
593 | "wx/gdiobj.h"
594 | "wx/gdicmn.h"
595 | "wx/list.h"
596 |
597 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gdiobj.h
598 | "wx/object.h"
599 |
600 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\cursor.h
601 | "wx/gdiobj.h"
602 | "wx/gdicmn.h"
603 |
604 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\cursor.h
605 | "wx/gdiobj.h"
606 | "wx/gdicmn.h"
607 |
608 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\cursor.h
609 | "wx/gdiobj.h"
610 | "wx/gdicmn.h"
611 | "wx/image.h"
612 |
613 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\image.h
614 | "wx/defs.h"
615 | "wx/object.h"
616 | "wx/string.h"
617 | "wx/gdicmn.h"
618 | "wx/hashmap.h"
619 | "wx/arrstr.h"
620 | "wx/stream.h"
621 | "wx/variant.h"
622 | "wx/imagbmp.h"
623 | "wx/imagpng.h"
624 | "wx/imaggif.h"
625 | "wx/imagpcx.h"
626 | "wx/imagjpeg.h"
627 | "wx/imagtga.h"
628 | "wx/imagtiff.h"
629 | "wx/imagpnm.h"
630 | "wx/imagxpm.h"
631 | "wx/imagiff.h"
632 |
633 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\stream.h
634 | "wx/defs.h"
635 |
636 | "wx/object.h"
637 | "wx/string.h"
638 | "wx/filefn.h"
639 |
640 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\filefn.h
641 | "wx/list.h"
642 | "wx/arrstr.h"
643 | "wx/msw/wince/time.h"
644 | "wx/msw/private.h"
645 |
646 |
647 |
648 |
649 | "wx/os2/private.h"
650 |
651 |
652 |
653 |
654 |
655 |
656 |
657 |
658 |
659 |
660 |
661 |
662 |
663 |
664 |
665 |
666 |
667 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\private.h
668 | "wx/msw/wrapwin.h"
669 | "wx/msw/microwin.h"
670 | "wx/log.h"
671 | "wx/window.h"
672 | "wx/gdicmn.h"
673 | "wx/colour.h"
674 |
675 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\microwin.h
676 |
677 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\window.h
678 | "wx/event.h"
679 | "wx/list.h"
680 | "wx/cursor.h"
681 | "wx/font.h"
682 | "wx/colour.h"
683 | "wx/region.h"
684 | "wx/utils.h"
685 | "wx/intl.h"
686 | "wx/validate.h"
687 | "wx/palette.h"
688 | "wx/accel.h"
689 | "wx/access.h"
690 | "wx/msw/window.h"
691 | "wx/motif/window.h"
692 | "wx/gtk/window.h"
693 | "wx/gtk1/window.h"
694 | "wx/x11/window.h"
695 | "wx/dfb/window.h"
696 | "wx/osx/window.h"
697 | "wx/cocoa/window.h"
698 | "wx/os2/window.h"
699 | "wx/univ/window.h"
700 |
701 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\font.h
702 | "wx/defs.h"
703 | "wx/fontenc.h"
704 | "wx/gdiobj.h"
705 | "wx/gdicmn.h"
706 | "wx/msw/font.h"
707 | "wx/motif/font.h"
708 | "wx/gtk/font.h"
709 | "wx/gtk1/font.h"
710 | "wx/x11/font.h"
711 | "wx/dfb/font.h"
712 | "wx/osx/font.h"
713 | "wx/cocoa/font.h"
714 | "wx/os2/font.h"
715 |
716 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\font.h
717 | "wx/gdicmn.h"
718 |
719 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\font.h
720 |
721 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\font.h
722 |
723 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\font.h
724 | "wx/hash.h"
725 |
726 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\hash.h
727 | "wx/defs.h"
728 | "wx/string.h"
729 | "wx/object.h"
730 |
731 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\font.h
732 |
733 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\font.h
734 | "wx/dfb/dfbptr.h"
735 |
736 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\dfbptr.h
737 |
738 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\font.h
739 |
740 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\font.h
741 |
742 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\font.h
743 | "wx/gdiobj.h"
744 | "wx/os2/private.h"
745 |
746 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\colour.h
747 | "wx/defs.h"
748 | "wx/gdiobj.h"
749 | "wx/variant.h"
750 | "wx/msw/colour.h"
751 | "wx/motif/colour.h"
752 | "wx/gtk/colour.h"
753 | "wx/gtk1/colour.h"
754 | "wx/generic/colour.h"
755 | "wx/x11/colour.h"
756 | "wx/osx/colour.h"
757 | "wx/cocoa/colour.h"
758 | "wx/os2/colour.h"
759 |
760 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\colour.h
761 | "wx/object.h"
762 |
763 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\colour.h
764 | "wx/object.h"
765 | "wx/string.h"
766 |
767 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\colour.h
768 |
769 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\colour.h
770 | "wx/defs.h"
771 | "wx/object.h"
772 | "wx/string.h"
773 | "wx/gdiobj.h"
774 | "wx/palette.h"
775 |
776 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\palette.h
777 | "wx/defs.h"
778 | "wx/object.h"
779 | "wx/gdiobj.h"
780 | "wx/msw/palette.h"
781 | "wx/x11/palette.h"
782 | "wx/generic/paletteg.h"
783 | "wx/osx/palette.h"
784 | "wx/os2/palette.h"
785 |
786 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\palette.h
787 | "wx/gdiobj.h"
788 |
789 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\palette.h
790 | "wx/list.h"
791 |
792 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\paletteg.h
793 | "wx/defs.h"
794 | "wx/object.h"
795 | "wx/gdiobj.h"
796 | "wx/gdicmn.h"
797 |
798 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\palette.h
799 | "wx/gdiobj.h"
800 |
801 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\palette.h
802 | "wx/gdiobj.h"
803 | "wx/os2/private.h"
804 |
805 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\colour.h
806 | "wx/object.h"
807 |
808 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\colour.h
809 | "wx/defs.h"
810 | "wx/object.h"
811 | "wx/string.h"
812 | "wx/gdiobj.h"
813 | "wx/palette.h"
814 |
815 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\colour.h
816 | "wx/osx/core/colour.h"
817 |
818 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\core\colour.h
819 | "wx/object.h"
820 | "wx/string.h"
821 | "wx/osx/core/cfref.h"
822 |
823 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\core\cfref.h
824 |
825 |
826 |
827 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\colour.h
828 | "wx/object.h"
829 | "wx/string.h"
830 |
831 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\colour.h
832 | "wx/object.h"
833 |
834 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\region.h
835 | "wx/gdiobj.h"
836 | "wx/gdicmn.h"
837 | "wx/msw/region.h"
838 | "wx/gtk/region.h"
839 | "wx/gtk1/region.h"
840 | "wx/x11/region.h"
841 | "wx/dfb/region.h"
842 | "wx/osx/region.h"
843 | "wx/cocoa/region.h"
844 | "wx/os2/region.h"
845 |
846 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\region.h
847 |
848 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\region.h
849 |
850 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\region.h
851 | "wx/list.h"
852 |
853 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\region.h
854 | "wx/list.h"
855 |
856 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\region.h
857 |
858 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\region.h
859 | "wx/osx/carbon/region.h"
860 | "wx/generic/region.h"
861 |
862 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\carbon\region.h
863 | "wx/list.h"
864 |
865 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\region.h
866 |
867 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\region.h
868 | "wx/generic/region.h"
869 |
870 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\region.h
871 | "wx/list.h"
872 | "wx/os2/private.h"
873 |
874 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\utils.h
875 | "wx/object.h"
876 | "wx/list.h"
877 | "wx/filefn.h"
878 | "wx/hashmap.h"
879 | "wx/versioninfo.h"
880 | "wx/meta/implicitconversion.h"
881 | "wx/gdicmn.h"
882 | "wx/mousestate.h"
883 | "wx/longlong.h"
884 | "wx/platinfo.h"
885 |
886 |
887 |
888 |
889 |
890 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\versioninfo.h
891 | "wx/string.h"
892 |
893 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\meta\implicitconversion.h
894 | "wx/defs.h"
895 | "wx/meta/if.h"
896 |
897 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\mousestate.h
898 | "wx/gdicmn.h"
899 | "wx/kbdstate.h"
900 |
901 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\kbdstate.h
902 | "wx/defs.h"
903 |
904 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\platinfo.h
905 | "wx/string.h"
906 |
907 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\validate.h
908 | "wx/defs.h"
909 | "wx/event.h"
910 |
911 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\accel.h
912 | "wx/defs.h"
913 | "wx/object.h"
914 | "wx/generic/accel.h"
915 | "wx/msw/accel.h"
916 | "wx/motif/accel.h"
917 | "wx/gtk/accel.h"
918 | "wx/gtk1/accel.h"
919 | "wx/osx/accel.h"
920 | "wx/generic/accel.h"
921 | "wx/os2/accel.h"
922 |
923 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\accel.h
924 |
925 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\accel.h
926 |
927 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\accel.h
928 | "wx/object.h"
929 | "wx/string.h"
930 | "wx/event.h"
931 |
932 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\accel.h
933 | "wx/generic/accel.h"
934 |
935 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\accel.h
936 | "wx/generic/accel.h"
937 |
938 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\accel.h
939 | "wx/string.h"
940 | "wx/event.h"
941 |
942 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\accel.h
943 | "wx/object.h"
944 |
945 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\access.h
946 | "wx/defs.h"
947 | "wx/variant.h"
948 | "wx/msw/ole/access.h"
949 |
950 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\ole\access.h
951 |
952 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\window.h
953 | "wx/settings.h"
954 |
955 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\settings.h
956 | "wx/colour.h"
957 | "wx/font.h"
958 |
959 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\window.h
960 | "wx/region.h"
961 |
962 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\window.h
963 | "wx/dynarray.h"
964 |
965 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\window.h
966 |
967 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\window.h
968 | "wx/region.h"
969 |
970 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\window.h
971 | "wx/dfb/dfbptr.h"
972 |
973 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\window.h
974 | "wx/brush.h"
975 | "wx/dc.h"
976 |
977 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\brush.h
978 | "wx/defs.h"
979 | "wx/object.h"
980 | "wx/gdiobj.h"
981 | "wx/gdicmn.h"
982 | "wx/msw/brush.h"
983 | "wx/x11/brush.h"
984 | "wx/gtk/brush.h"
985 | "wx/gtk1/brush.h"
986 | "wx/dfb/brush.h"
987 | "wx/osx/brush.h"
988 | "wx/cocoa/brush.h"
989 | "wx/os2/brush.h"
990 |
991 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\brush.h
992 |
993 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\brush.h
994 | "wx/gdiobj.h"
995 |
996 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\brush.h
997 |
998 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\brush.h
999 | "wx/defs.h"
1000 | "wx/object.h"
1001 | "wx/string.h"
1002 | "wx/gdiobj.h"
1003 | "wx/bitmap.h"
1004 |
1005 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\bitmap.h
1006 | "wx/string.h"
1007 | "wx/gdicmn.h"
1008 | "wx/colour.h"
1009 | "wx/image.h"
1010 | "wx/variant.h"
1011 | "wx/msw/bitmap.h"
1012 | "wx/x11/bitmap.h"
1013 | "wx/gtk/bitmap.h"
1014 | "wx/gtk1/bitmap.h"
1015 | "wx/x11/bitmap.h"
1016 | "wx/dfb/bitmap.h"
1017 | "wx/osx/bitmap.h"
1018 | "wx/cocoa/bitmap.h"
1019 | "wx/os2/bitmap.h"
1020 | "wx/generic/mask.h"
1021 |
1022 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\bitmap.h
1023 | "wx/msw/gdiimage.h"
1024 | "wx/math.h"
1025 | "wx/palette.h"
1026 |
1027 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\bitmap.h
1028 | "wx/defs.h"
1029 | "wx/object.h"
1030 | "wx/string.h"
1031 | "wx/palette.h"
1032 | "wx/gdiobj.h"
1033 |
1034 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\bitmap.h
1035 |
1036 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\bitmap.h
1037 | "wx/defs.h"
1038 | "wx/object.h"
1039 | "wx/string.h"
1040 | "wx/palette.h"
1041 | "wx/gdiobj.h"
1042 |
1043 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\bitmap.h
1044 | "wx/dfb/dfbptr.h"
1045 |
1046 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\bitmap.h
1047 | "wx/palette.h"
1048 |
1049 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\bitmap.h
1050 | "wx/palette.h"
1051 |
1052 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\bitmap.h
1053 | "wx/os2/private.h"
1054 | "wx/os2/gdiimage.h"
1055 | "wx/gdicmn.h"
1056 | "wx/palette.h"
1057 |
1058 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\gdiimage.h
1059 | "wx/gdiobj.h"
1060 | "wx/gdicmn.h"
1061 | "wx/list.h"
1062 |
1063 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\mask.h
1064 |
1065 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\brush.h
1066 | "wx/defs.h"
1067 | "wx/object.h"
1068 | "wx/string.h"
1069 | "wx/gdiobj.h"
1070 | "wx/bitmap.h"
1071 |
1072 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\brush.h
1073 | "wx/gdicmn.h"
1074 | "wx/gdiobj.h"
1075 | "wx/bitmap.h"
1076 |
1077 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\brush.h
1078 | "wx/gdicmn.h"
1079 | "wx/gdiobj.h"
1080 | "wx/bitmap.h"
1081 |
1082 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\brush.h
1083 | "wx/bitmap.h"
1084 |
1085 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dc.h
1086 | "wx/object.h"
1087 | "wx/intl.h"
1088 | "wx/cursor.h"
1089 | "wx/font.h"
1090 | "wx/colour.h"
1091 | "wx/bitmap.h"
1092 | "wx/brush.h"
1093 | "wx/pen.h"
1094 | "wx/palette.h"
1095 | "wx/dynarray.h"
1096 | "wx/math.h"
1097 | "wx/image.h"
1098 | "wx/region.h"
1099 | "wx/affinematrix2d.h"
1100 |
1101 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\pen.h
1102 | "wx/gdiobj.h"
1103 | "wx/gdicmn.h"
1104 | "wx/msw/pen.h"
1105 | "wx/x11/pen.h"
1106 | "wx/gtk/pen.h"
1107 | "wx/gtk1/pen.h"
1108 | "wx/dfb/pen.h"
1109 | "wx/osx/pen.h"
1110 | "wx/cocoa/pen.h"
1111 | "wx/os2/pen.h"
1112 |
1113 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\pen.h
1114 | "wx/gdiobj.h"
1115 | "wx/gdicmn.h"
1116 |
1117 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\pen.h
1118 | "wx/gdicmn.h"
1119 | "wx/gdiobj.h"
1120 |
1121 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\pen.h
1122 |
1123 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\pen.h
1124 | "wx/defs.h"
1125 | "wx/object.h"
1126 | "wx/string.h"
1127 | "wx/gdiobj.h"
1128 | "wx/gdicmn.h"
1129 |
1130 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\pen.h
1131 | "wx/defs.h"
1132 | "wx/object.h"
1133 | "wx/string.h"
1134 | "wx/gdiobj.h"
1135 | "wx/gdicmn.h"
1136 |
1137 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\pen.h
1138 | "wx/gdiobj.h"
1139 | "wx/colour.h"
1140 | "wx/bitmap.h"
1141 |
1142 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\pen.h
1143 | "wx/gdiobj.h"
1144 | "wx/gdicmn.h"
1145 |
1146 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\pen.h
1147 | "wx/gdiobj.h"
1148 | "wx/bitmap.h"
1149 |
1150 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\affinematrix2d.h
1151 | "wx/defs.h"
1152 | "wx/affinematrix2dbase.h"
1153 |
1154 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\affinematrix2dbase.h
1155 | "wx/defs.h"
1156 | "wx/geometry.h"
1157 |
1158 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\geometry.h
1159 | "wx/defs.h"
1160 | "wx/utils.h"
1161 | "wx/gdicmn.h"
1162 | "wx/math.h"
1163 |
1164 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\window.h
1165 | "wx/cocoa/NSView.h"
1166 |
1167 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\nsview.h
1168 | "wx/hashmap.h"
1169 | "wx/cocoa/ObjcAssociate.h"
1170 |
1171 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\objcassociate.h
1172 |
1173 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\window.h
1174 |
1175 | "wx/hash.h"
1176 |
1177 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\window.h
1178 | "wx/bitmap.h"
1179 |
1180 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imagbmp.h
1181 | "wx/image.h"
1182 |
1183 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imagpng.h
1184 | "wx/defs.h"
1185 | "wx/image.h"
1186 | "wx/versioninfo.h"
1187 |
1188 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imaggif.h
1189 | "wx/image.h"
1190 |
1191 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imagpcx.h
1192 | "wx/image.h"
1193 |
1194 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imagjpeg.h
1195 | "wx/defs.h"
1196 | "wx/image.h"
1197 | "wx/versioninfo.h"
1198 |
1199 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imagtga.h
1200 | "wx/image.h"
1201 |
1202 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imagtiff.h
1203 | "wx/defs.h"
1204 | "wx/image.h"
1205 | "wx/versioninfo.h"
1206 |
1207 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imagpnm.h
1208 | "wx/image.h"
1209 |
1210 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imagxpm.h
1211 | "wx/image.h"
1212 |
1213 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imagiff.h
1214 | "wx/image.h"
1215 |
1216 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\cursor.h
1217 | "wx/gdiobj.h"
1218 | "wx/gdicmn.h"
1219 | "wx/colour.h"
1220 |
1221 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\cursor.h
1222 | "wx/gdiobj.h"
1223 | "wx/gdicmn.h"
1224 |
1225 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\cursor.h
1226 | "wx/bitmap.h"
1227 |
1228 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\cursor.h
1229 | "wx/bitmap.h"
1230 |
1231 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\cursor.h
1232 | "wx/bitmap.h"
1233 |
1234 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\tracker.h
1235 | "wx/defs.h"
1236 |
1237 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\meta\convertible.h
1238 |
1239 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\meta\removeref.h
1240 |
1241 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\eventfilter.h
1242 | "wx/defs.h"
1243 |
1244 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\build.h
1245 | "wx/version.h"
1246 |
1247 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cmdargs.h
1248 | "wx/arrstr.h"
1249 |
1250 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\init.h
1251 | "wx/defs.h"
1252 | "wx/chartype.h"
1253 | "wx/msw/init.h"
1254 |
1255 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\init.h
1256 | "wx/msw/wrapwin.h"
1257 |
1258 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\unix\app.h
1259 |
1260 |
1261 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\app.h
1262 | "wx/event.h"
1263 | "wx/icon.h"
1264 |
1265 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\icon.h
1266 | "wx/iconloc.h"
1267 | "wx/msw/icon.h"
1268 | "wx/motif/icon.h"
1269 | "wx/generic/icon.h"
1270 | "wx/generic/icon.h"
1271 | "wx/generic/icon.h"
1272 | "wx/generic/icon.h"
1273 | "wx/osx/icon.h"
1274 | "wx/generic/icon.h"
1275 | "wx/cocoa/icon.h"
1276 | "wx/os2/icon.h"
1277 | "wx/variant.h"
1278 |
1279 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\iconloc.h
1280 | "wx/string.h"
1281 |
1282 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\icon.h
1283 | "wx/msw/gdiimage.h"
1284 |
1285 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\icon.h
1286 | "wx/bitmap.h"
1287 |
1288 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\icon.h
1289 | "wx/bitmap.h"
1290 |
1291 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\icon.h
1292 | "wx/bitmap.h"
1293 |
1294 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\icon.h
1295 | "wx/gdicmn.h"
1296 | "wx/gdiobj.h"
1297 |
1298 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\icon.h
1299 | "wx/bitmap.h"
1300 | "wx/os2/gdiimage.h"
1301 |
1302 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\app.h
1303 | "wx/event.h"
1304 | "wx/hashmap.h"
1305 |
1306 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\app.h
1307 | "wx/dfb/dfbptr.h"
1308 | "wx/vidmode.h"
1309 |
1310 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\vidmode.h
1311 |
1312 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\app.h
1313 |
1314 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\app.h
1315 | "wx/frame.h"
1316 | "wx/icon.h"
1317 | "wx/strconv.h"
1318 |
1319 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\frame.h
1320 | "wx/toplevel.h"
1321 | "wx/statusbr.h"
1322 | "wx/univ/frame.h"
1323 | "wx/msw/frame.h"
1324 | "wx/gtk/frame.h"
1325 | "wx/gtk1/frame.h"
1326 | "wx/motif/frame.h"
1327 | "wx/osx/frame.h"
1328 | "wx/cocoa/frame.h"
1329 | "wx/os2/frame.h"
1330 |
1331 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\toplevel.h
1332 | "wx/nonownedwnd.h"
1333 | "wx/iconbndl.h"
1334 | "wx/weakref.h"
1335 | "wx/msw/toplevel.h"
1336 | "wx/gtk/toplevel.h"
1337 | "wx/gtk1/toplevel.h"
1338 | "wx/x11/toplevel.h"
1339 | "wx/dfb/toplevel.h"
1340 | "wx/osx/toplevel.h"
1341 | "wx/cocoa/toplevel.h"
1342 | "wx/os2/toplevel.h"
1343 | "wx/motif/toplevel.h"
1344 | "wx/univ/toplevel.h"
1345 |
1346 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\nonownedwnd.h
1347 | "wx/window.h"
1348 | "wx/dfb/nonownedwnd.h"
1349 | "wx/gtk/nonownedwnd.h"
1350 | "wx/osx/nonownedwnd.h"
1351 | "wx/msw/nonownedwnd.h"
1352 |
1353 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\nonownedwnd.h
1354 | "wx/window.h"
1355 | "wx/dfb/dfbptr.h"
1356 |
1357 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\nonownedwnd.h
1358 |
1359 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\nonownedwnd.h
1360 | "wx/window.h"
1361 | "wx/graphics.h"
1362 |
1363 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\graphics.h
1364 | "wx/defs.h"
1365 | "wx/geometry.h"
1366 | "wx/dynarray.h"
1367 | "wx/dc.h"
1368 | "wx/image.h"
1369 | "wx/vector.h"
1370 |
1371 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\nonownedwnd.h
1372 |
1373 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\iconbndl.h
1374 | "wx/gdiobj.h"
1375 | "wx/gdicmn.h"
1376 | "wx/icon.h"
1377 | "wx/dynarray.h"
1378 |
1379 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\weakref.h
1380 | "wx/tracker.h"
1381 | "wx/meta/convertible.h"
1382 | "wx/meta/int2type.h"
1383 |
1384 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\meta\int2type.h
1385 |
1386 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\toplevel.h
1387 |
1388 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\toplevel.h
1389 |
1390 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\toplevel.h
1391 |
1392 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\toplevel.h
1393 |
1394 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dfb\toplevel.h
1395 |
1396 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\toplevel.h
1397 |
1398 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\toplevel.h
1399 | "wx/hashmap.h"
1400 | "wx/cocoa/NSWindow.h"
1401 |
1402 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\nswindow.h
1403 | "wx/hashmap.h"
1404 | "wx/cocoa/ObjcAssociate.h"
1405 |
1406 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\toplevel.h
1407 |
1408 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\toplevel.h
1409 |
1410 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\toplevel.h
1411 | "wx/univ/inpcons.h"
1412 | "wx/univ/inphand.h"
1413 | "wx/icon.h"
1414 |
1415 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\inpcons.h
1416 | "wx/object.h"
1417 | "wx/event.h"
1418 |
1419 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\inphand.h
1420 | "wx/univ/inpcons.h"
1421 |
1422 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\statusbr.h
1423 | "wx/defs.h"
1424 | "wx/control.h"
1425 | "wx/list.h"
1426 | "wx/dynarray.h"
1427 | "wx/univ/statusbr.h"
1428 | "wx/msw/statusbar.h"
1429 | "wx/generic/statusbr.h"
1430 | "wx/osx/statusbr.h"
1431 | "wx/generic/statusbr.h"
1432 |
1433 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\control.h
1434 | "wx/defs.h"
1435 | "wx/window.h"
1436 | "wx/univ/control.h"
1437 | "wx/msw/control.h"
1438 | "wx/motif/control.h"
1439 | "wx/gtk/control.h"
1440 | "wx/gtk1/control.h"
1441 | "wx/osx/control.h"
1442 | "wx/cocoa/control.h"
1443 | "wx/os2/control.h"
1444 |
1445 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\control.h
1446 | "wx/univ/inphand.h"
1447 | "wx/univ/inpcons.h"
1448 |
1449 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\control.h
1450 | "wx/dynarray.h"
1451 |
1452 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\control.h
1453 | "wx/window.h"
1454 | "wx/list.h"
1455 | "wx/validate.h"
1456 |
1457 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\control.h
1458 |
1459 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\control.h
1460 | "wx/defs.h"
1461 | "wx/object.h"
1462 | "wx/list.h"
1463 | "wx/window.h"
1464 |
1465 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\control.h
1466 |
1467 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\control.h
1468 | "wx/cocoa/NSControl.h"
1469 |
1470 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\nscontrol.h
1471 | "wx/hashmap.h"
1472 | "wx/cocoa/ObjcAssociate.h"
1473 |
1474 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\control.h
1475 | "wx/dynarray.h"
1476 |
1477 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\statusbr.h
1478 | "wx/univ/inpcons.h"
1479 | "wx/arrstr.h"
1480 |
1481 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\statusbar.h
1482 | "wx/vector.h"
1483 | "wx/tooltip.h"
1484 |
1485 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\tooltip.h
1486 | "wx/defs.h"
1487 | "wx/msw/tooltip.h"
1488 | "wx/gtk/tooltip.h"
1489 | "wx/gtk1/tooltip.h"
1490 | "wx/osx/tooltip.h"
1491 | "wx/cocoa/tooltip.h"
1492 | "wx/os2/tooltip.h"
1493 |
1494 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\tooltip.h
1495 | "wx/object.h"
1496 | "wx/gdicmn.h"
1497 |
1498 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\tooltip.h
1499 | "wx/string.h"
1500 | "wx/object.h"
1501 |
1502 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\tooltip.h
1503 | "wx/defs.h"
1504 | "wx/string.h"
1505 | "wx/object.h"
1506 |
1507 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\tooltip.h
1508 | "wx/string.h"
1509 | "wx/event.h"
1510 |
1511 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\tooltip.h
1512 | "wx/object.h"
1513 |
1514 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\tooltip.h
1515 |
1516 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\statusbr.h
1517 | "wx/defs.h"
1518 | "wx/pen.h"
1519 | "wx/arrstr.h"
1520 |
1521 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\statusbr.h
1522 |
1523 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\frame.h
1524 |
1525 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\frame.h
1526 |
1527 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\frame.h
1528 |
1529 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\frame.h
1530 |
1531 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\frame.h
1532 |
1533 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\frame.h
1534 | "wx/toolbar.h"
1535 | "wx/accel.h"
1536 | "wx/icon.h"
1537 |
1538 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\toolbar.h
1539 | "wx/defs.h"
1540 | "wx/tbarbase.h"
1541 | "wx/univ/toolbar.h"
1542 | "wx/msw/toolbar.h"
1543 | "wx/msw/wince/tbarwce.h"
1544 | "wx/motif/toolbar.h"
1545 | "wx/gtk/toolbar.h"
1546 | "wx/gtk1/toolbar.h"
1547 | "wx/osx/toolbar.h"
1548 | "wx/cocoa/toolbar.h"
1549 | "wx/os2/toolbar.h"
1550 |
1551 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\tbarbase.h
1552 | "wx/defs.h"
1553 | "wx/bitmap.h"
1554 | "wx/list.h"
1555 | "wx/control.h"
1556 |
1557 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\toolbar.h
1558 | "wx/button.h"
1559 |
1560 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\button.h
1561 | "wx/defs.h"
1562 | "wx/anybutton.h"
1563 | "wx/univ/button.h"
1564 | "wx/msw/button.h"
1565 | "wx/motif/button.h"
1566 | "wx/gtk/button.h"
1567 | "wx/gtk1/button.h"
1568 | "wx/osx/button.h"
1569 | "wx/cocoa/button.h"
1570 | "wx/os2/button.h"
1571 |
1572 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\anybutton.h
1573 | "wx/defs.h"
1574 | "wx/bitmap.h"
1575 | "wx/control.h"
1576 | "wx/univ/anybutton.h"
1577 | "wx/msw/anybutton.h"
1578 | "wx/gtk/anybutton.h"
1579 | "wx/osx/anybutton.h"
1580 |
1581 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\anybutton.h
1582 |
1583 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\anybutton.h
1584 |
1585 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\anybutton.h
1586 |
1587 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\anybutton.h
1588 |
1589 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\button.h
1590 | "wx/bitmap.h"
1591 |
1592 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\button.h
1593 |
1594 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\button.h
1595 |
1596 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\button.h
1597 |
1598 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\button.h
1599 | "wx/defs.h"
1600 | "wx/object.h"
1601 | "wx/list.h"
1602 |
1603 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\button.h
1604 | "wx/control.h"
1605 | "wx/gdicmn.h"
1606 |
1607 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\button.h
1608 | "wx/cocoa/NSButton.h"
1609 |
1610 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\nsbutton.h
1611 | "wx/hashmap.h"
1612 | "wx/cocoa/ObjcAssociate.h"
1613 | "wx/cocoa/ObjcRef.h"
1614 |
1615 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\objcref.h
1616 | "wx/osx/core/cfref.h"
1617 |
1618 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\button.h
1619 | "wx/control.h"
1620 |
1621 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\toolbar.h
1622 | "wx/dynarray.h"
1623 | "wx/imaglist.h"
1624 |
1625 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\imaglist.h
1626 | "wx/defs.h"
1627 | "wx/generic/imaglist.h"
1628 | "wx/msw/imaglist.h"
1629 | "wx/osx/imaglist.h"
1630 |
1631 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\imaglist.h
1632 | "wx/list.h"
1633 |
1634 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\imaglist.h
1635 | "wx/bitmap.h"
1636 |
1637 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\imaglist.h
1638 | "wx/defs.h"
1639 | "wx/list.h"
1640 | "wx/icon.h"
1641 |
1642 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wince\tbarwce.h
1643 | "wx/dynarray.h"
1644 | "wx/msw/toolbar.h"
1645 |
1646 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\toolbar.h
1647 |
1648 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\toolbar.h
1649 |
1650 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\toolbar.h
1651 |
1652 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\toolbar.h
1653 | "wx/tbarbase.h"
1654 | "wx/dynarray.h"
1655 |
1656 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\toolbar.h
1657 |
1658 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\toolbar.h
1659 | "wx/timer.h"
1660 | "wx/tbarbase.h"
1661 |
1662 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\timer.h
1663 | "wx/defs.h"
1664 | "wx/object.h"
1665 | "wx/longlong.h"
1666 | "wx/event.h"
1667 | "wx/stopwatch.h"
1668 | "wx/utils.h"
1669 |
1670 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\stopwatch.h
1671 | "wx/defs.h"
1672 | "wx/longlong.h"
1673 | "wx/time.h"
1674 |
1675 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\time.h
1676 | "wx/longlong.h"
1677 |
1678 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\frame.h
1679 |
1680 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\frame.h
1681 | "wx/os2/wxrsc.h"
1682 |
1683 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\wxrsc.h
1684 |
1685 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\app.h
1686 | "wx/gdicmn.h"
1687 | "wx/event.h"
1688 |
1689 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\app.h
1690 | "wx/defs.h"
1691 | "wx/object.h"
1692 | "wx/gdicmn.h"
1693 | "wx/event.h"
1694 |
1695 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\app.h
1696 | "wx/osx/core/cfref.h"
1697 |
1698 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\app.h
1699 |
1700 |
1701 |
1702 |
1703 |
1704 |
1705 |
1706 |
1707 | "wx/event.h"
1708 | "wx/icon.h"
1709 |
1710 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\theme.h
1711 | "wx/string.h"
1712 |
1713 | 1557457785 e:\c_proj\tcp2com\tcp2commain.h
1714 |
1715 |
1716 |
1717 |
1718 |
1719 |
1720 |
1721 |
1722 |
1723 | "FrameObserver.h"
1724 |
1725 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\choice.h
1726 | "wx/defs.h"
1727 | "wx/ctrlsub.h"
1728 | "wx/univ/choice.h"
1729 | "wx/msw/wince/choicece.h"
1730 | "wx/msw/choice.h"
1731 | "wx/motif/choice.h"
1732 | "wx/gtk/choice.h"
1733 | "wx/gtk1/choice.h"
1734 | "wx/osx/choice.h"
1735 | "wx/cocoa/choice.h"
1736 | "wx/os2/choice.h"
1737 |
1738 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\ctrlsub.h
1739 | "wx/defs.h"
1740 | "wx/arrstr.h"
1741 | "wx/control.h"
1742 | "wx/msw/ctrlsub.h"
1743 | "wx/motif/ctrlsub.h"
1744 |
1745 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\ctrlsub.h
1746 |
1747 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\ctrlsub.h
1748 | "wx/dynarray.h"
1749 | "wx/generic/ctrlsub.h"
1750 |
1751 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\ctrlsub.h
1752 | "wx/dynarray.h"
1753 |
1754 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\choice.h
1755 | "wx/combobox.h"
1756 |
1757 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\combobox.h
1758 | "wx/defs.h"
1759 | "wx/textctrl.h"
1760 | "wx/ctrlsub.h"
1761 | "wx/textentry.h"
1762 | "wx/univ/combobox.h"
1763 | "wx/msw/combobox.h"
1764 | "wx/motif/combobox.h"
1765 | "wx/gtk/combobox.h"
1766 | "wx/gtk1/combobox.h"
1767 | "wx/osx/combobox.h"
1768 | "wx/cocoa/combobox.h"
1769 | "wx/os2/combobox.h"
1770 |
1771 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\textctrl.h
1772 | "wx/defs.h"
1773 | "wx/control.h"
1774 | "wx/textentry.h"
1775 | "wx/dynarray.h"
1776 | "wx/gdicmn.h"
1777 | "wx/ioswrap.h"
1778 | "wx/x11/textctrl.h"
1779 | "wx/univ/textctrl.h"
1780 | "wx/msw/wince/textctrlce.h"
1781 | "wx/msw/textctrl.h"
1782 | "wx/motif/textctrl.h"
1783 | "wx/gtk/textctrl.h"
1784 | "wx/gtk1/textctrl.h"
1785 | "wx/osx/textctrl.h"
1786 | "wx/cocoa/textctrl.h"
1787 | "wx/os2/textctrl.h"
1788 |
1789 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\textentry.h
1790 | "wx/filefn.h"
1791 | "wx/gdicmn.h"
1792 | "wx/gtk/textentry.h"
1793 | "wx/osx/textentry.h"
1794 | "wx/msw/textentry.h"
1795 | "wx/motif/textentry.h"
1796 | "wx/os2/textentry.h"
1797 |
1798 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\textentry.h
1799 |
1800 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\textentry.h
1801 | "wx/control.h"
1802 |
1803 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\textentry.h
1804 |
1805 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\textentry.h
1806 |
1807 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\textentry.h
1808 |
1809 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\ioswrap.h
1810 | "wx/beforestd.h"
1811 |
1812 |
1813 | "wx/afterstd.h"
1814 | "wx/msw/winundef.h"
1815 |
1816 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\x11\textctrl.h
1817 | "wx/univ/textctrl.h"
1818 | "wx/scrolwin.h"
1819 | "wx/arrstr.h"
1820 |
1821 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\textctrl.h
1822 | "wx/scrolwin.h"
1823 | "wx/univ/inphand.h"
1824 |
1825 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\scrolwin.h
1826 | "wx/panel.h"
1827 | "wx/gtk/scrolwin.h"
1828 | "wx/gtk1/scrolwin.h"
1829 | "wx/generic/scrolwin.h"
1830 |
1831 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\panel.h
1832 | "wx/window.h"
1833 | "wx/containr.h"
1834 | "wx/univ/panel.h"
1835 | "wx/msw/panel.h"
1836 | "wx/generic/panelg.h"
1837 |
1838 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\containr.h
1839 | "wx/defs.h"
1840 | "wx/event.h"
1841 |
1842 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\panel.h
1843 |
1844 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\panel.h
1845 |
1846 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\panelg.h
1847 | "wx/bitmap.h"
1848 |
1849 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\scrolwin.h
1850 |
1851 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\scrolwin.h
1852 |
1853 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\scrolwin.h
1854 |
1855 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wince\textctrlce.h
1856 | "wx/dynarray.h"
1857 |
1858 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\textctrl.h
1859 |
1860 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\textctrl.h
1861 |
1862 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\textctrl.h
1863 |
1864 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\textctrl.h
1865 |
1866 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\textctrl.h
1867 | "wx/control.h"
1868 | "wx/textctrl.h"
1869 |
1870 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\textctrl.h
1871 | "wx/cocoa/NSTextField.h"
1872 |
1873 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\nstextfield.h
1874 | "wx/hashmap.h"
1875 | "wx/cocoa/ObjcAssociate.h"
1876 |
1877 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\textctrl.h
1878 |
1879 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\combobox.h
1880 | "wx/combo.h"
1881 |
1882 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\combo.h
1883 | "wx/defs.h"
1884 | "wx/control.h"
1885 | "wx/renderer.h"
1886 | "wx/bitmap.h"
1887 | "wx/textentry.h"
1888 | "wx/msw/combo.h"
1889 | "wx/generic/combo.h"
1890 |
1891 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\renderer.h
1892 | "wx/gdicmn.h"
1893 | "wx/colour.h"
1894 | "wx/font.h"
1895 | "wx/bitmap.h"
1896 | "wx/string.h"
1897 |
1898 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\combo.h
1899 | "wx/timer.h"
1900 |
1901 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\combo.h
1902 | "wx/dcbuffer.h"
1903 |
1904 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dcbuffer.h
1905 | "wx/dcmemory.h"
1906 | "wx/dcclient.h"
1907 | "wx/window.h"
1908 |
1909 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dcmemory.h
1910 | "wx/dc.h"
1911 | "wx/bitmap.h"
1912 |
1913 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dcclient.h
1914 | "wx/dc.h"
1915 |
1916 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\combobox.h
1917 | "wx/choice.h"
1918 | "wx/textentry.h"
1919 |
1920 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\combobox.h
1921 | "wx/choice.h"
1922 | "wx/textentry.h"
1923 |
1924 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\combobox.h
1925 | "wx/choice.h"
1926 |
1927 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\combobox.h
1928 | "wx/defs.h"
1929 | "wx/object.h"
1930 |
1931 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\combobox.h
1932 | "wx/containr.h"
1933 | "wx/choice.h"
1934 | "wx/textctrl.h"
1935 |
1936 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\combobox.h
1937 | "wx/hashmap.h"
1938 | "wx/cocoa/ObjcAssociate.h"
1939 | "wx/textctrl.h"
1940 | "wx/dynarray.h"
1941 |
1942 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\combobox.h
1943 | "wx/choice.h"
1944 | "wx/textentry.h"
1945 |
1946 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wince\choicece.h
1947 | "wx/defs.h"
1948 | "wx/dynarray.h"
1949 |
1950 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\choice.h
1951 |
1952 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\choice.h
1953 | "wx/clntdata.h"
1954 | "wx/dynarray.h"
1955 |
1956 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\choice.h
1957 |
1958 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\choice.h
1959 |
1960 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\choice.h
1961 | "wx/control.h"
1962 | "wx/dynarray.h"
1963 | "wx/arrstr.h"
1964 |
1965 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\choice.h
1966 | "wx/cocoa/NSMenu.h"
1967 |
1968 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\nsmenu.h
1969 | "wx/hashmap.h"
1970 | "wx/cocoa/ObjcAssociate.h"
1971 |
1972 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\choice.h
1973 |
1974 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dialog.h
1975 | "wx/toplevel.h"
1976 | "wx/containr.h"
1977 | "wx/sharedptr.h"
1978 | "wx/univ/dialog.h"
1979 | "wx/msw/dialog.h"
1980 | "wx/motif/dialog.h"
1981 | "wx/gtk/dialog.h"
1982 | "wx/gtk1/dialog.h"
1983 | "wx/osx/dialog.h"
1984 | "wx/cocoa/dialog.h"
1985 | "wx/os2/dialog.h"
1986 |
1987 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\sharedptr.h
1988 | "wx/defs.h"
1989 | "wx/atomic.h"
1990 |
1991 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\atomic.h
1992 | "wx/defs.h"
1993 | "wx/msw/wrapwin.h"
1994 | "libkern/OSAtomic.h"
1995 |
1996 | "wx/thread.h"
1997 |
1998 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\dialog.h
1999 |
2000 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\dialog.h
2001 | "wx/panel.h"
2002 |
2003 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\dialog.h
2004 |
2005 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\dialog.h
2006 |
2007 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\dialog.h
2008 |
2009 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\dialog.h
2010 | "wx/panel.h"
2011 |
2012 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\dialog.h
2013 | "wx/defs.h"
2014 | "wx/panel.h"
2015 | "wx/cocoa/NSPanel.h"
2016 |
2017 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\nspanel.h
2018 | "wx/hashmap.h"
2019 | "wx/cocoa/ObjcAssociate.h"
2020 |
2021 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\dialog.h
2022 | "wx/panel.h"
2023 |
2024 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\sizer.h
2025 | "wx/defs.h"
2026 | "wx/window.h"
2027 |
2028 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\statline.h
2029 | "wx/defs.h"
2030 | "wx/control.h"
2031 | "wx/univ/statline.h"
2032 | "wx/msw/statline.h"
2033 | "wx/gtk/statline.h"
2034 | "wx/gtk1/statline.h"
2035 | "wx/os2/statline.h"
2036 | "wx/osx/statline.h"
2037 | "wx/cocoa/statline.h"
2038 | "wx/generic/statline.h"
2039 |
2040 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\statline.h
2041 |
2042 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\statline.h
2043 |
2044 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\statline.h
2045 | "wx/defs.h"
2046 |
2047 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\statline.h
2048 | "wx/defs.h"
2049 |
2050 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\statline.h
2051 |
2052 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\statline.h
2053 |
2054 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\statline.h
2055 |
2056 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\statline.h
2057 |
2058 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\stattext.h
2059 | "wx/defs.h"
2060 | "wx/control.h"
2061 | "wx/univ/stattext.h"
2062 | "wx/msw/stattext.h"
2063 | "wx/motif/stattext.h"
2064 | "wx/gtk/stattext.h"
2065 | "wx/gtk1/stattext.h"
2066 | "wx/osx/stattext.h"
2067 | "wx/cocoa/stattext.h"
2068 | "wx/os2/stattext.h"
2069 |
2070 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\stattext.h
2071 | "wx/generic/stattextg.h"
2072 |
2073 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\stattextg.h
2074 | "wx/stattext.h"
2075 |
2076 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\stattext.h
2077 |
2078 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\stattext.h
2079 |
2080 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\stattext.h
2081 |
2082 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\stattext.h
2083 |
2084 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\stattext.h
2085 |
2086 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\stattext.h
2087 | "wx/cocoa/NSTextField.h"
2088 |
2089 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\stattext.h
2090 | "wx/control.h"
2091 |
2092 | 1557467874 source:e:\c_proj\tcp2com\tcp2commain.cpp
2093 | "TCP2COMMain.h"
2094 |
2095 |
2096 |
2097 | "FactoryPreset.h"
2098 | "VirtualCom.h"
2099 | "NetCommService.h"
2100 | "SerialCommService.h"
2101 |
2102 |
2103 |
2104 |
2105 |
2106 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msgdlg.h
2107 | "wx/defs.h"
2108 | "wx/dialog.h"
2109 | "wx/stockitem.h"
2110 | "wx/generic/msgdlgg.h"
2111 | "wx/cocoa/msgdlg.h"
2112 | "wx/msw/msgdlg.h"
2113 | "wx/motif/msgdlg.h"
2114 | "wx/gtk/msgdlg.h"
2115 | "wx/osx/msgdlg.h"
2116 | "wx/os2/msgdlg.h"
2117 |
2118 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\stockitem.h
2119 | "wx/defs.h"
2120 | "wx/chartype.h"
2121 | "wx/string.h"
2122 | "wx/accel.h"
2123 |
2124 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\msgdlgg.h
2125 |
2126 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\msgdlg.h
2127 | "wx/msgdlg.h"
2128 | "wx/generic/msgdlgg.h"
2129 |
2130 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\msgdlg.h
2131 |
2132 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\msgdlg.h
2133 |
2134 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\msgdlg.h
2135 |
2136 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\msgdlg.h
2137 |
2138 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\msgdlg.h
2139 |
2140 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\statbmp.h
2141 | "wx/defs.h"
2142 | "wx/control.h"
2143 | "wx/bitmap.h"
2144 | "wx/icon.h"
2145 | "wx/univ/statbmp.h"
2146 | "wx/msw/statbmp.h"
2147 | "wx/motif/statbmp.h"
2148 | "wx/gtk/statbmp.h"
2149 | "wx/gtk1/statbmp.h"
2150 | "wx/osx/statbmp.h"
2151 | "wx/cocoa/statbmp.h"
2152 | "wx/os2/statbmp.h"
2153 |
2154 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\statbmp.h
2155 | "wx/bitmap.h"
2156 |
2157 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\statbmp.h
2158 | "wx/control.h"
2159 | "wx/icon.h"
2160 | "wx/bitmap.h"
2161 |
2162 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\statbmp.h
2163 | "wx/motif/bmpmotif.h"
2164 | "wx/icon.h"
2165 |
2166 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\bmpmotif.h
2167 | "wx/defs.h"
2168 | "wx/bitmap.h"
2169 |
2170 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\statbmp.h
2171 | "wx/icon.h"
2172 |
2173 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\statbmp.h
2174 | "wx/icon.h"
2175 |
2176 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\statbmp.h
2177 | "wx/osx/carbon/statbmp.h"
2178 | "wx/generic/statbmpg.h"
2179 |
2180 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\carbon\statbmp.h
2181 | "wx/icon.h"
2182 |
2183 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\generic\statbmpg.h
2184 | "wx/statbmp.h"
2185 |
2186 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\statbmp.h
2187 |
2188 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\statbmp.h
2189 | "wx/control.h"
2190 | "wx/icon.h"
2191 |
2192 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\checklst.h
2193 | "wx/defs.h"
2194 | "wx/listbox.h"
2195 | "wx/univ/checklst.h"
2196 | "wx/msw/wince/checklst.h"
2197 | "wx/msw/checklst.h"
2198 | "wx/motif/checklst.h"
2199 | "wx/gtk/checklst.h"
2200 | "wx/gtk1/checklst.h"
2201 | "wx/osx/checklst.h"
2202 | "wx/cocoa/checklst.h"
2203 | "wx/os2/checklst.h"
2204 |
2205 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\listbox.h
2206 | "wx/defs.h"
2207 | "wx/ctrlsub.h"
2208 | "wx/univ/listbox.h"
2209 | "wx/msw/listbox.h"
2210 | "wx/motif/listbox.h"
2211 | "wx/gtk/listbox.h"
2212 | "wx/gtk1/listbox.h"
2213 | "wx/osx/listbox.h"
2214 | "wx/os2/listbox.h"
2215 | "wx/cocoa/listbox.h"
2216 |
2217 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\listbox.h
2218 | "wx/scrolwin.h"
2219 | "wx/dynarray.h"
2220 | "wx/arrstr.h"
2221 |
2222 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\listbox.h
2223 | "wx/dynarray.h"
2224 |
2225 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\listbox.h
2226 | "wx/ctrlsub.h"
2227 | "wx/clntdata.h"
2228 |
2229 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\listbox.h
2230 |
2231 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\listbox.h
2232 | "wx/list.h"
2233 |
2234 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\listbox.h
2235 | "wx/dynarray.h"
2236 | "wx/arrstr.h"
2237 |
2238 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\listbox.h
2239 | "wx/dynarray.h"
2240 |
2241 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\listbox.h
2242 | "wx/cocoa/NSTableView.h"
2243 | "wx/dynarray.h"
2244 |
2245 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\nstableview.h
2246 | "wx/hashmap.h"
2247 | "wx/cocoa/ObjcAssociate.h"
2248 |
2249 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\univ\checklst.h
2250 |
2251 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\wince\checklst.h
2252 |
2253 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\checklst.h
2254 |
2255 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\motif\checklst.h
2256 | "wx/listbox.h"
2257 |
2258 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk\checklst.h
2259 |
2260 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\gtk1\checklst.h
2261 |
2262 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\checklst.h
2263 |
2264 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\cocoa\checklst.h
2265 |
2266 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\checklst.h
2267 |
2268 | "wx/defs.h"
2269 |
2270 | 1557384337 source:e:\c_proj\tcp2com\src\factorypreset.cpp
2271 | "FactoryPreset.h"
2272 |
2273 |
2274 |
2275 |
2276 |
2277 |
2278 |
2279 | 1557282350 e:\c_proj\tcp2com\include\factorypreset.h
2280 |
2281 |
2282 |
2283 |
2284 |
2285 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\filename.h
2286 | "wx/arrstr.h"
2287 | "wx/filefn.h"
2288 | "wx/datetime.h"
2289 | "wx/intl.h"
2290 | "wx/longlong.h"
2291 | "wx/file.h"
2292 |
2293 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\file.h
2294 | "wx/defs.h"
2295 | "wx/string.h"
2296 | "wx/filefn.h"
2297 | "wx/convauto.h"
2298 |
2299 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\convauto.h
2300 | "wx/strconv.h"
2301 | "wx/fontenc.h"
2302 |
2303 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\fileconf.h
2304 | "wx/defs.h"
2305 | "wx/textfile.h"
2306 | "wx/string.h"
2307 | "wx/confbase.h"
2308 | "wx/filename.h"
2309 |
2310 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\textfile.h
2311 | "wx/defs.h"
2312 | "wx/textbuf.h"
2313 | "wx/file.h"
2314 |
2315 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\textbuf.h
2316 | "wx/defs.h"
2317 | "wx/arrstr.h"
2318 | "wx/convauto.h"
2319 | "wx/string.h"
2320 | "wx/dynarray.h"
2321 |
2322 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\confbase.h
2323 | "wx/defs.h"
2324 | "wx/string.h"
2325 | "wx/object.h"
2326 | "wx/base64.h"
2327 |
2328 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\base64.h
2329 | "wx/string.h"
2330 | "wx/buffer.h"
2331 |
2332 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\stdpaths.h
2333 | "wx/defs.h"
2334 | "wx/string.h"
2335 | "wx/filefn.h"
2336 | "wx/msw/stdpaths.h"
2337 | "wx/osx/core/stdpaths.h"
2338 | "wx/os2/stdpaths.h"
2339 | "wx/unix/stdpaths.h"
2340 |
2341 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\msw\stdpaths.h
2342 |
2343 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\osx\core\stdpaths.h
2344 | "wx/unix/stdpaths.h"
2345 |
2346 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\unix\stdpaths.h
2347 |
2348 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\os2\stdpaths.h
2349 |
2350 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\wfstream.h
2351 | "wx/defs.h"
2352 | "wx/object.h"
2353 | "wx/string.h"
2354 | "wx/stream.h"
2355 | "wx/file.h"
2356 | "wx/ffile.h"
2357 |
2358 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\ffile.h
2359 | "wx/defs.h"
2360 | "wx/string.h"
2361 | "wx/filefn.h"
2362 | "wx/convauto.h"
2363 |
2364 |
2365 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\dir.h
2366 | "wx/longlong.h"
2367 | "wx/string.h"
2368 | "wx/filefn.h"
2369 |
2370 | 1557279576 source:e:\c_proj\tcp2com\src\virtualcom.cpp
2371 | "VirtualCom.h"
2372 | "FactoryPreset.h"
2373 |
2374 |
2375 |
2376 |
2377 |
2378 |
2379 | 1557279357 e:\c_proj\tcp2com\include\virtualcom.h
2380 |
2381 |
2382 |
2383 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\tokenzr.h
2384 | "wx/object.h"
2385 | "wx/string.h"
2386 | "wx/arrstr.h"
2387 |
2388 | 1557379358 source:e:\c_proj\tcp2com\src\commlistenerbase.cpp
2389 | "CommListenerBase.h"
2390 |
2391 | 1557381037 e:\c_proj\tcp2com\include\commlistenerbase.h
2392 |
2393 |
2394 | 1557386528 source:e:\c_proj\tcp2com\src\commservicebase.cpp
2395 | "CommServiceBase.h"
2396 |
2397 | 1557386036 e:\c_proj\tcp2com\include\commservicebase.h
2398 | "CommListenerBase.h"
2399 | "FrameObserver.h"
2400 |
2401 |
2402 |
2403 | 1557379982 e:\c_proj\tcp2com\include\frameobserver.h
2404 |
2405 |
2406 | 1557467451 source:e:\c_proj\tcp2com\src\tcpserverlistener.cpp
2407 | "TCPServerListener.h"
2408 | "NetCommService.h"
2409 |
2410 | 1557389947 e:\c_proj\tcp2com\include\tcpserverlistener.h
2411 |
2412 |
2413 |
2414 |
2415 |
2416 | "CommListenerBase.h"
2417 |
2418 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\socket.h
2419 | "wx/defs.h"
2420 | "wx/event.h"
2421 | "wx/sckaddr.h"
2422 | "wx/list.h"
2423 |
2424 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\sckaddr.h
2425 | "wx/defs.h"
2426 | "wx/string.h"
2427 |
2428 | 1520441738 d:\dev_lib\c\wxwidgets\include\wx\sckstrm.h
2429 | "wx/stream.h"
2430 | "wx/socket.h"
2431 |
2432 | 1557467397 source:e:\c_proj\tcp2com\src\netcommservice.cpp
2433 | "NetCommService.h"
2434 | "FactoryPreset.h"
2435 | "TCPServerListener.h"
2436 |
2437 | 1557449479 e:\c_proj\tcp2com\include\netcommservice.h
2438 | "CommServiceBase.h"
2439 |
2440 |
2441 |
2442 |
2443 |
2444 | 1557458613 source:e:\c_proj\tcp2com\src\serialcommservice.cpp
2445 | "SerialCommService.h"
2446 | "SerialPortListener.h"
2447 | "FactoryPreset.h"
2448 |
2449 | 1557382057 e:\c_proj\tcp2com\include\serialcommservice.h
2450 |
2451 |
2452 |
2453 | "CommServiceBase.h"
2454 |
2455 |
2456 | 1557388918 source:e:\c_proj\tcp2com\src\serialportlistener.cpp
2457 | "SerialPortListener.h"
2458 | "SerialCommService.h"
2459 | "FactoryPreset.h"
2460 |
2461 | 1557387953 e:\c_proj\tcp2com\include\serialportlistener.h
2462 |
2463 |
2464 |
2465 |
2466 | "CommListenerBase.h"
2467 |
2468 |
--------------------------------------------------------------------------------
/TCP2COM.layout:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
--------------------------------------------------------------------------------
/TCP2COMApp.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************
2 | * Name: TCP2COMApp.cpp
3 | * Purpose: Code for Application Class
4 | * Author: David (lw.7@foxmail.com)
5 | * Created: 2019-05-07
6 | * Copyright: David ()
7 | * License:
8 | **************************************************************/
9 |
10 | #include "TCP2COMApp.h"
11 |
12 | //(*AppHeaders
13 | #include "TCP2COMMain.h"
14 | #include
15 | //*)
16 |
17 | IMPLEMENT_APP(TCP2COMApp);
18 |
19 | bool TCP2COMApp::OnInit()
20 | {
21 | //(*AppInitialize
22 | bool wxsOK = true;
23 | wxInitAllImageHandlers();
24 | if ( wxsOK )
25 | {
26 | TCP2COMDialog Dlg(0);
27 | SetTopWindow(&Dlg);
28 | Dlg.ShowModal();
29 | wxsOK = false;
30 | }
31 | //*)
32 | return wxsOK;
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/TCP2COMApp.h:
--------------------------------------------------------------------------------
1 | /***************************************************************
2 | * Name: TCP2COMApp.h
3 | * Purpose: Defines Application Class
4 | * Author: David (lw.7@foxmail.com)
5 | * Created: 2019-05-07
6 | * Copyright: David ()
7 | * License:
8 | **************************************************************/
9 |
10 | #ifndef TCP2COMAPP_H
11 | #define TCP2COMAPP_H
12 |
13 | #include
14 |
15 | class TCP2COMApp : public wxApp
16 | {
17 | public:
18 | virtual bool OnInit();
19 | };
20 |
21 | #endif // TCP2COMAPP_H
22 |
--------------------------------------------------------------------------------
/TCP2COMMain.cpp:
--------------------------------------------------------------------------------
1 | /***************************************************************
2 | * Name: TCP2COMMain.cpp
3 | * Purpose: Code for Application Frame
4 | * Author: David (lw.7@foxmail.com)
5 | * Created: 2019-05-07
6 | * Copyright: David ()
7 | * License:
8 | **************************************************************/
9 |
10 | #include "TCP2COMMain.h"
11 | #include
12 | #include
13 | #include
14 |
15 | #include "FactoryPreset.h"
16 | #include "VirtualCom.h"
17 | #include "NetCommService.h"
18 | #include "SerialCommService.h"
19 |
20 | //(*InternalHeaders(TCP2COMDialog)
21 | #include
22 | #include
23 | #include
24 | #include
25 | //*)
26 |
27 | //helper functions
28 | enum wxbuildinfoformat {
29 | short_f, long_f };
30 |
31 | using namespace std;
32 |
33 | wxString wxbuildinfo(wxbuildinfoformat format)
34 | {
35 | wxString wxbuild(wxVERSION_STRING);
36 |
37 | if (format == long_f )
38 | {
39 | #if defined(__WXMSW__)
40 | wxbuild << _T("-Windows");
41 | #elif defined(__UNIX__)
42 | wxbuild << _T("-Linux");
43 | #endif
44 |
45 | #if wxUSE_UNICODE
46 | wxbuild << _T("-Unicode build");
47 | #else
48 | wxbuild << _T("-ANSI build");
49 | #endif // wxUSE_UNICODE
50 | }
51 |
52 | return wxbuild;
53 | }
54 |
55 | //(*IdInit(TCP2COMDialog)
56 | const long TCP2COMDialog::ID_STATICTEXT1 = wxNewId();
57 | const long TCP2COMDialog::ID_STATICTEXT2 = wxNewId();
58 | const long TCP2COMDialog::ID_TEXTCTRL1 = wxNewId();
59 | const long TCP2COMDialog::ID_STATICTEXT3 = wxNewId();
60 | const long TCP2COMDialog::ID_TEXTCTRL2 = wxNewId();
61 | const long TCP2COMDialog::ID_STATICLINE1 = wxNewId();
62 | const long TCP2COMDialog::ID_STATICTEXT9 = wxNewId();
63 | const long TCP2COMDialog::ID_CHOICE2 = wxNewId();
64 | const long TCP2COMDialog::ID_STATICTEXT10 = wxNewId();
65 | const long TCP2COMDialog::ID_CHOICE3 = wxNewId();
66 | const long TCP2COMDialog::ID_STATICTEXT11 = wxNewId();
67 | const long TCP2COMDialog::ID_CHOICE4 = wxNewId();
68 | const long TCP2COMDialog::ID_STATICTEXT12 = wxNewId();
69 | const long TCP2COMDialog::ID_CHOICE5 = wxNewId();
70 | const long TCP2COMDialog::ID_BUTTON1 = wxNewId();
71 | const long TCP2COMDialog::ID_BUTTON2 = wxNewId();
72 | const long TCP2COMDialog::ID_STATICTEXT6 = wxNewId();
73 | const long TCP2COMDialog::ID_STATICLINE3 = wxNewId();
74 | const long TCP2COMDialog::ID_STATICTEXT7 = wxNewId();
75 | const long TCP2COMDialog::ID_STATICLINE2 = wxNewId();
76 | const long TCP2COMDialog::ID_STATICTEXT5 = wxNewId();
77 | const long TCP2COMDialog::ID_LISTBOX1 = wxNewId();
78 | const long TCP2COMDialog::ID_TEXTCTRL3 = wxNewId();
79 | const long TCP2COMDialog::ID_STATICTEXT8 = wxNewId();
80 | const long TCP2COMDialog::ID_TEXTCTRL4 = wxNewId();
81 | const long TCP2COMDialog::ID_BUTTON3 = wxNewId();
82 | const long TCP2COMDialog::ID_BUTTON4 = wxNewId();
83 | const long TCP2COMDialog::ID_BUTTON5 = wxNewId();
84 | const long TCP2COMDialog::ID_BUTTON6 = wxNewId();
85 | const long TCP2COMDialog::ID_TIMER1 = wxNewId();
86 | //*)
87 |
88 | BEGIN_EVENT_TABLE(TCP2COMDialog,wxDialog)
89 | //(*EventTable(TCP2COMDialog)
90 | //*)
91 | END_EVENT_TABLE()
92 |
93 | TCP2COMDialog::TCP2COMDialog(wxWindow* parent,wxWindowID id)
94 | {
95 | //(*Initialize(TCP2COMDialog)
96 | wxBoxSizer* BoxSizer2;
97 | wxBoxSizer* BoxSizer3;
98 | wxBoxSizer* BoxSizer4;
99 | wxBoxSizer* BoxSizer5;
100 | wxFlexGridSizer* FlexGridSizer1;
101 | wxFlexGridSizer* FlexGridSizer3;
102 |
103 | Create(parent, id, _("网络转串口"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE, _T("id"));
104 | SetClientSize(wxSize(300,500));
105 | SetBackgroundColour(wxColour(147,214,242));
106 | BoxSizer1 = new wxBoxSizer(wxVERTICAL);
107 | BoxSizer1->Add(91,12,0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
108 | StaticText1 = new wxStaticText(this, ID_STATICTEXT1, _("TCP Server"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
109 | StaticText1->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT));
110 | wxFont StaticText1Font(16,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("黑体"),wxFONTENCODING_DEFAULT);
111 | StaticText1->SetFont(StaticText1Font);
112 | BoxSizer1->Add(StaticText1, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
113 | FlexGridSizer1 = new wxFlexGridSizer(0, 2, 0, 0);
114 | FlexGridSizer1->AddGrowableCol(0);
115 | FlexGridSizer1->AddGrowableCol(1);
116 | StaticText2 = new wxStaticText(this, ID_STATICTEXT2, _("主机:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));
117 | wxFont StaticText2Font(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("黑体"),wxFONTENCODING_DEFAULT);
118 | StaticText2->SetFont(StaticText2Font);
119 | FlexGridSizer1->Add(StaticText2, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
120 | txtHost = new wxTextCtrl(this, ID_TEXTCTRL1, wxEmptyString, wxDefaultPosition, wxSize(150,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL1"));
121 | FlexGridSizer1->Add(txtHost, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
122 | StaticText3 = new wxStaticText(this, ID_STATICTEXT3, _("端口:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3"));
123 | wxFont StaticText3Font(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("黑体"),wxFONTENCODING_DEFAULT);
124 | StaticText3->SetFont(StaticText3Font);
125 | FlexGridSizer1->Add(StaticText3, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
126 | txtPort = new wxTextCtrl(this, ID_TEXTCTRL2, wxEmptyString, wxDefaultPosition, wxSize(150,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL2"));
127 | FlexGridSizer1->Add(txtPort, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
128 | BoxSizer1->Add(FlexGridSizer1, 0, wxALL|wxEXPAND, 5);
129 | StaticLine1 = new wxStaticLine(this, ID_STATICLINE1, wxDefaultPosition, wxSize(10,3), wxLI_HORIZONTAL, _T("ID_STATICLINE1"));
130 | BoxSizer1->Add(StaticLine1, 0, wxALL|wxEXPAND, 5);
131 | FlexGridSizer3 = new wxFlexGridSizer(0, 4, 0, 0);
132 | StaticText9 = new wxStaticText(this, ID_STATICTEXT9, _("串口:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT9"));
133 | wxFont StaticText9Font(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("黑体"),wxFONTENCODING_DEFAULT);
134 | StaticText9->SetFont(StaticText9Font);
135 | FlexGridSizer3->Add(StaticText9, 1, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
136 | cmbComport = new wxChoice(this, ID_CHOICE2, wxDefaultPosition, wxSize(70,22), 0, 0, 0, wxDefaultValidator, _T("ID_CHOICE2"));
137 | cmbComport->Append(_("COM10"));
138 | cmbComport->Append(_("COM11"));
139 | FlexGridSizer3->Add(cmbComport, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
140 | StaticText10 = new wxStaticText(this, ID_STATICTEXT10, _("波特率:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT10"));
141 | wxFont StaticText10Font(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("黑体"),wxFONTENCODING_DEFAULT);
142 | StaticText10->SetFont(StaticText10Font);
143 | FlexGridSizer3->Add(StaticText10, 1, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
144 | cmbBaudrate = new wxChoice(this, ID_CHOICE3, wxDefaultPosition, wxSize(70,22), 0, 0, 0, wxDefaultValidator, _T("ID_CHOICE3"));
145 | cmbBaudrate->Append(_("300"));
146 | cmbBaudrate->Append(_("600"));
147 | cmbBaudrate->Append(_("1200"));
148 | cmbBaudrate->Append(_("2400"));
149 | cmbBaudrate->Append(_("4800"));
150 | cmbBaudrate->SetSelection( cmbBaudrate->Append(_("9600")) );
151 | cmbBaudrate->Append(_("19200"));
152 | cmbBaudrate->Append(_("38400"));
153 | cmbBaudrate->Append(_("43000"));
154 | cmbBaudrate->Append(_("56000"));
155 | cmbBaudrate->Append(_("57600"));
156 | cmbBaudrate->Append(_("115200"));
157 | FlexGridSizer3->Add(cmbBaudrate, 1, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
158 | StaticText11 = new wxStaticText(this, ID_STATICTEXT11, _("数据位:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT11"));
159 | wxFont StaticText11Font(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("黑体"),wxFONTENCODING_DEFAULT);
160 | StaticText11->SetFont(StaticText11Font);
161 | FlexGridSizer3->Add(StaticText11, 1, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
162 | cmbDatabits = new wxChoice(this, ID_CHOICE4, wxDefaultPosition, wxSize(70,22), 0, 0, 0, wxDefaultValidator, _T("ID_CHOICE4"));
163 | cmbDatabits->Append(_("6"));
164 | cmbDatabits->Append(_("7"));
165 | cmbDatabits->SetSelection( cmbDatabits->Append(_("8")) );
166 | FlexGridSizer3->Add(cmbDatabits, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
167 | StaticText12 = new wxStaticText(this, ID_STATICTEXT12, _("校验位:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT12"));
168 | wxFont StaticText12Font(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("黑体"),wxFONTENCODING_DEFAULT);
169 | StaticText12->SetFont(StaticText12Font);
170 | FlexGridSizer3->Add(StaticText12, 1, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
171 | cmbParitys = new wxChoice(this, ID_CHOICE5, wxDefaultPosition, wxSize(70,22), 0, 0, 0, wxDefaultValidator, _T("ID_CHOICE5"));
172 | cmbParitys->SetSelection( cmbParitys->Append(_("None")) );
173 | cmbParitys->Append(_("Odd"));
174 | cmbParitys->Append(_("Even"));
175 | cmbParitys->Append(_("Mark"));
176 | cmbParitys->Append(_("Space"));
177 | FlexGridSizer3->Add(cmbParitys, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
178 | BoxSizer1->Add(FlexGridSizer3, 0, wxALL|wxEXPAND, 5);
179 | BoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
180 | btnOpen = new wxButton(this, ID_BUTTON1, _("打开"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1"));
181 | btnOpen->SetFocus();
182 | wxFont btnOpenFont(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL,false,_T("黑体"),wxFONTENCODING_DEFAULT);
183 | btnOpen->SetFont(btnOpenFont);
184 | BoxSizer2->Add(btnOpen, 1, wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 10);
185 | btnClose = new wxButton(this, ID_BUTTON2, _("关闭"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON2"));
186 | wxFont btnCloseFont(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL,false,_T("黑体"),wxFONTENCODING_DEFAULT);
187 | btnClose->SetFont(btnCloseFont);
188 | BoxSizer2->Add(btnClose, 1, wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 10);
189 | BoxSizer1->Add(BoxSizer2, 0, wxTOP|wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
190 | BoxSizer5 = new wxBoxSizer(wxHORIZONTAL);
191 | labNetState = new wxStaticText(this, ID_STATICTEXT6, _("网络未开启"), wxDefaultPosition, wxSize(110,14), wxALIGN_CENTRE, _T("ID_STATICTEXT6"));
192 | wxFont labNetStateFont(8,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL,false,_T("黑体"),wxFONTENCODING_DEFAULT);
193 | labNetState->SetFont(labNetStateFont);
194 | BoxSizer5->Add(labNetState, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
195 | StaticLine3 = new wxStaticLine(this, ID_STATICLINE3, wxDefaultPosition, wxSize(3,10), wxLI_HORIZONTAL, _T("ID_STATICLINE3"));
196 | BoxSizer5->Add(StaticLine3, 0, wxLEFT|wxRIGHT|wxEXPAND, 5);
197 | labComState = new wxStaticText(this, ID_STATICTEXT7, _("COM4已打开"), wxDefaultPosition, wxSize(110,14), wxALIGN_CENTRE, _T("ID_STATICTEXT7"));
198 | wxFont labComStateFont(8,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL,false,_T("黑体"),wxFONTENCODING_DEFAULT);
199 | labComState->SetFont(labComStateFont);
200 | BoxSizer5->Add(labComState, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
201 | BoxSizer1->Add(BoxSizer5, 0, wxTOP|wxLEFT|wxRIGHT|wxEXPAND, 5);
202 | StaticLine2 = new wxStaticLine(this, ID_STATICLINE2, wxDefaultPosition, wxSize(10,3), wxLI_HORIZONTAL, _T("ID_STATICLINE2"));
203 | BoxSizer1->Add(StaticLine2, 0, wxALL|wxEXPAND, 5);
204 | StaticText5 = new wxStaticText(this, ID_STATICTEXT5, _("Virtual COM"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT5"));
205 | StaticText5->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT));
206 | wxFont StaticText5Font(16,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_BOLD,false,_T("黑体"),wxFONTENCODING_DEFAULT);
207 | StaticText5->SetFont(StaticText5Font);
208 | BoxSizer1->Add(StaticText5, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
209 | listComPairs = new wxListBox(this, ID_LISTBOX1, wxDefaultPosition, wxSize(246,66), 0, 0, 0, wxDefaultValidator, _T("ID_LISTBOX1"));
210 | BoxSizer1->Add(listComPairs, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
211 | BoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
212 | txtCompA = new wxTextCtrl(this, ID_TEXTCTRL3, _("COMx"), wxDefaultPosition, wxSize(58,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL3"));
213 | BoxSizer3->Add(txtCompA, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
214 | StaticText8 = new wxStaticText(this, ID_STATICTEXT8, _("<=>"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT8"));
215 | BoxSizer3->Add(StaticText8, 0, wxTOP|wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
216 | txtCompB = new wxTextCtrl(this, ID_TEXTCTRL4, _("COMx"), wxDefaultPosition, wxSize(58,22), 0, wxDefaultValidator, _T("ID_TEXTCTRL4"));
217 | BoxSizer3->Add(txtCompB, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
218 | btnAddPair = new wxButton(this, ID_BUTTON3, _("添加"), wxDefaultPosition, wxSize(50,24), 0, wxDefaultValidator, _T("ID_BUTTON3"));
219 | wxFont btnAddPairFont(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL,false,_T("黑体"),wxFONTENCODING_DEFAULT);
220 | btnAddPair->SetFont(btnAddPairFont);
221 | BoxSizer3->Add(btnAddPair, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
222 | BoxSizer1->Add(BoxSizer3, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
223 | BoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
224 | btnReload = new wxButton(this, ID_BUTTON4, _("加载"), wxDefaultPosition, wxSize(65,24), 0, wxDefaultValidator, _T("ID_BUTTON4"));
225 | wxFont btnReloadFont(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL,false,_T("黑体"),wxFONTENCODING_DEFAULT);
226 | btnReload->SetFont(btnReloadFont);
227 | BoxSizer4->Add(btnReload, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
228 | btnRemove = new wxButton(this, ID_BUTTON5, _("删除"), wxDefaultPosition, wxSize(65,24), 0, wxDefaultValidator, _T("ID_BUTTON5"));
229 | wxFont btnRemoveFont(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL,false,_T("黑体"),wxFONTENCODING_DEFAULT);
230 | btnRemove->SetFont(btnRemoveFont);
231 | BoxSizer4->Add(btnRemove, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
232 | btnInstall = new wxButton(this, ID_BUTTON6, _("安装驱动"), wxDefaultPosition, wxSize(65,24), 0, wxDefaultValidator, _T("ID_BUTTON6"));
233 | wxFont btnInstallFont(10,wxFONTFAMILY_SWISS,wxFONTSTYLE_NORMAL,wxFONTWEIGHT_NORMAL,false,_T("黑体"),wxFONTENCODING_DEFAULT);
234 | btnInstall->SetFont(btnInstallFont);
235 | BoxSizer4->Add(btnInstall, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
236 | BoxSizer1->Add(BoxSizer4, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
237 | SetSizer(BoxSizer1);
238 | Timer1.SetOwner(this, ID_TIMER1);
239 | SetSizer(BoxSizer1);
240 | Layout();
241 | Center();
242 |
243 | Connect(ID_CHOICE2,wxEVT_COMMAND_CHOICE_SELECTED,(wxObjectEventFunction)&TCP2COMDialog::OncmbCompSelect);
244 | Connect(ID_CHOICE3,wxEVT_COMMAND_CHOICE_SELECTED,(wxObjectEventFunction)&TCP2COMDialog::OncmbBaudrateSelect);
245 | Connect(ID_CHOICE4,wxEVT_COMMAND_CHOICE_SELECTED,(wxObjectEventFunction)&TCP2COMDialog::OncmbDatabitsSelect);
246 | Connect(ID_CHOICE5,wxEVT_COMMAND_CHOICE_SELECTED,(wxObjectEventFunction)&TCP2COMDialog::OncmbParitysSelect);
247 | Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&TCP2COMDialog::OnbtnOpenClick);
248 | Connect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&TCP2COMDialog::OnbtnStopClick);
249 | Connect(ID_BUTTON3,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&TCP2COMDialog::OnbtnAddPairClick);
250 | Connect(ID_BUTTON4,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&TCP2COMDialog::OnbtnReloadClick);
251 | Connect(ID_BUTTON5,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&TCP2COMDialog::OnbtnRemoveClick);
252 | Connect(ID_BUTTON6,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&TCP2COMDialog::OnbtnInstallClick);
253 | Connect(ID_TIMER1,wxEVT_TIMER,(wxObjectEventFunction)&TCP2COMDialog::OnTimer1Trigger);
254 | Connect(wxID_ANY,wxEVT_INIT_DIALOG,(wxObjectEventFunction)&TCP2COMDialog::OnInit);
255 | Connect(wxID_ANY,wxEVT_CLOSE_WINDOW,(wxObjectEventFunction)&TCP2COMDialog::OnClose);
256 | //*)
257 | }
258 |
259 | TCP2COMDialog::~TCP2COMDialog()
260 | {
261 | //(*Destroy(TCP2COMDialog)
262 | //*)
263 | }
264 |
265 | void TCP2COMDialog::OnQuit(wxCommandEvent& event)
266 | {
267 | Close();
268 | }
269 |
270 | void TCP2COMDialog::OnAbout(wxCommandEvent& event)
271 | {
272 | wxString msg = wxbuildinfo(long_f);
273 | wxMessageBox(msg, _("Welcome to..."));
274 | }
275 |
276 | /**
277 | * 观察者模式的接收函数
278 | **/
279 | void TCP2COMDialog::onReciveData(FrameObserver::DataSource source,uint8_t * data,size_t len)
280 | {
281 | //从网络收到数据
282 | if(source == FrameObserver::DataSource::NETWORK) {
283 | //cout<<"Redirect to comport !"<Clear();
305 | for(i=0;iGetCount();i++)
306 | {
307 | cout<<"Item: "<GetString(i)<GetString(i)," <=>",wxTOKEN_STRTOK);
309 | while(token.HasMoreTokens()) {
310 | wxString field = token.NextToken();
311 | if(field.Left(3) == "COM" && field.substr(3).ToLong(&portNO)) {
312 | //cout<<"Field: "<Append(field);
314 | }
315 | }
316 | }
317 | //----------------------------------------
318 | //检查配置文件中上次设置的串口
319 | FactoryPreset& preset = FactoryPreset::getPreset();
320 | preset.config->SetPath("/TCPServer");
321 | wxString cacheComP = preset.config->Read("COMP");
322 | cmbComport->SetStringSelection(cacheComP);
323 | }
324 |
325 | /**
326 | * 只允许进程打开一个实例
327 | **/
328 | void TCP2COMDialog::OnInit(wxInitDialogEvent& event)
329 | {
330 | HANDLE hMutex = CreateMutex(NULL,TRUE,_("TCP2COM"));
331 | if(hMutex && ERROR_ALREADY_EXISTS == GetLastError())
332 | {
333 | HWND hWnd = ::FindWindow(NULL,TEXT("网络转串口"));
334 | if(hWnd != NULL)
335 | {
336 | ::SwitchToThisWindow(hWnd,TRUE);
337 | ::ShowWindow(hWnd,SW_SHOWNORMAL);
338 | }
339 | //如果相同的进程已存在则关闭当前进程
340 | ExitProcess(0);
341 | }
342 | //-------------------------------------------
343 | FactoryPreset& preset = FactoryPreset::getPreset();
344 | preset.config->SetPath("TCPServer");
345 | txtHost->SetValue(preset.config->Read("HOST"));
346 | txtPort->SetValue(preset.config->Read("PORT"));
347 | /**
348 | * 界面初始化完成后自动加载所有的虚拟串口
349 | **/
350 | wxCommandEvent* loadCaller = new wxCommandEvent(wxEVT_COMMAND_BUTTON_CLICKED,ID_BUTTON4);
351 | OnbtnReloadClick(*loadCaller);
352 |
353 | cmbBaudrate->SetStringSelection(preset.config->Read("BAUD"));
354 | cmbDatabits->SetStringSelection(preset.config->Read("DATB"));
355 | cmbParitys->SetStringSelection(preset.config->Read("PARI"));
356 | //-------------------------------------------
357 | NetCommService& netService = NetCommService::getService();
358 | netService.addObserver(this);
359 | SerialCommService& comService = SerialCommService::getService();
360 | comService.addObserver(this);
361 |
362 | btnClose->Enable(false);
363 | Timer1.Start(500);
364 | }
365 |
366 | /**
367 | * 安装虚拟串口驱动
368 | **/
369 | void TCP2COMDialog::OnbtnInstallClick(wxCommandEvent& event)
370 | {
371 | btnInstall->Enable(false);
372 | VirtualCom& manager = VirtualCom::getManager();
373 | manager.installDriver();
374 | btnInstall->Enable(true);
375 | }
376 |
377 | /**
378 | * 加载虚拟串口列表
379 | **/
380 | void TCP2COMDialog::OnbtnReloadClick(wxCommandEvent& event)
381 | {
382 | int i = 0;
383 | size_t numOfPairs = 0;
384 | btnReload->Enable(false);
385 | VirtualCom& manager = VirtualCom::getManager();
386 | VirtualCom::CommPairType* commPairs = new VirtualCom::CommPairType[32];
387 | manager.loadCommPairs(commPairs,&numOfPairs);
388 |
389 | listComPairs->Clear();
390 | for(i=0;i<(int)numOfPairs;i++)
391 | {
392 | wxString item = "ComPair " + wxString::Format("%d",commPairs[i].index) + " " + commPairs[i].comA + "<=>" + commPairs[i].comB;
393 | listComPairs->Append(item);
394 | }
395 |
396 | //---------------------------------
397 | delete [] commPairs;
398 | btnReload->Enable(true);
399 |
400 | //更新下拉列表框
401 | updateComports();
402 | }
403 |
404 | /**
405 | * 删除指定的一对虚拟串口
406 | **/
407 | void TCP2COMDialog::OnbtnRemoveClick(wxCommandEvent& event)
408 | {
409 | int i = 0;
410 | long pairIndex = 0;
411 |
412 | btnRemove->Enable(false);
413 | if(listComPairs->GetSelection() >= 0) {
414 | //cout<<"Delete Virtual Com Pair : "<<
415 | //listComPairs->GetString(listComPairs->GetSelection())<GetString(listComPairs->GetSelection()),
418 | " <=>",wxTOKEN_STRTOK);
419 | for(i=0;i<32;i++) {
420 | if(token.HasMoreTokens()) {
421 | if(token.NextToken() == "ComPair") {
422 | if(token.NextToken().ToLong(&pairIndex)) {
423 | cout<<"Delete Pair "<Enable(true);
440 | }
441 |
442 | /**
443 | * 添加一对指定的虚拟串口
444 | **/
445 | void TCP2COMDialog::OnbtnAddPairClick(wxCommandEvent& event)
446 | {
447 | long portA,portB;
448 | btnAddPair->Enable(false);
449 | if(txtCompA->GetValue().Left(3) == "COM" && txtCompB->GetValue().Left(3) == "COM") {
450 | if(txtCompA->GetValue().substr(3).ToLong(&portA) && txtCompB->GetValue().substr(3).ToLong(&portB)) {
451 | if(portA != portB) { //一对虚拟串口的两个串口号不可能一样
452 | VirtualCom& manager = VirtualCom::getManager();
453 | manager.createComPair(txtCompA->GetValue(),txtCompB->GetValue());
454 | /**
455 | * 创建新的虚拟串口后需要重新加载虚拟串口列表
456 | **/
457 | wxCommandEvent* loadCaller = new wxCommandEvent(wxEVT_COMMAND_BUTTON_CLICKED,ID_BUTTON4);
458 | OnbtnReloadClick(*loadCaller);
459 | }
460 | }
461 | }
462 | btnAddPair->Enable(true);
463 | }
464 |
465 | /**
466 | * 打开通信口
467 | **/
468 | void TCP2COMDialog::OnbtnOpenClick(wxCommandEvent& event)
469 | {
470 | cmbComport->Enable(false);
471 | cmbBaudrate->Enable(false);
472 | cmbDatabits->Enable(false);
473 | cmbParitys->Enable(false);
474 |
475 | //保存输入的主机地址和端口号
476 | FactoryPreset& preset = FactoryPreset::getPreset();
477 | preset.config->SetPath("/TCPServer");
478 | preset.config->Write("HOST",txtHost->GetValue());
479 | preset.config->Write("PORT",txtPort->GetValue());
480 | preset.SaveConfig();
481 |
482 | //打开网络
483 | NetCommService& netService = NetCommService::getService();
484 | netService.open();
485 | //打开串口
486 | SerialCommService& comService = SerialCommService::getService();
487 | comService.open();
488 |
489 | btnOpen->Enable(false);
490 | btnClose->Enable(true);
491 | }
492 |
493 | /**
494 | * 关闭通信口
495 | **/
496 | void TCP2COMDialog::OnbtnStopClick(wxCommandEvent& event)
497 | {
498 | cmbComport->Enable(true);
499 | cmbBaudrate->Enable(true);
500 | cmbDatabits->Enable(true);
501 | cmbParitys->Enable(true);
502 |
503 | NetCommService& netService = NetCommService::getService();
504 | netService.close();
505 | SerialCommService& comService = SerialCommService::getService();
506 | comService.close();
507 |
508 | btnOpen->Enable(true);
509 | btnClose->Enable(false);
510 | }
511 |
512 | /**
513 | * 当重新选择串口后,保存到配置文件
514 | **/
515 | void TCP2COMDialog::OncmbCompSelect(wxCommandEvent& event)
516 | {
517 | FactoryPreset& preset = FactoryPreset::getPreset();
518 | preset.config->SetPath("/TCPServer");
519 | preset.config->Write("COMP",event.GetString());
520 | preset.SaveConfig();
521 | }
522 |
523 | void TCP2COMDialog::OnClose(wxCloseEvent& event)
524 | {
525 | NetCommService& netService = NetCommService::getService();
526 | netService.close();
527 | SerialCommService& comService = SerialCommService::getService();
528 | comService.close();
529 |
530 | EndDialog(0);
531 | }
532 |
533 | void TCP2COMDialog::OncmbBaudrateSelect(wxCommandEvent& event)
534 | {
535 | FactoryPreset& preset = FactoryPreset::getPreset();
536 | preset.config->SetPath("/TCPServer");
537 | preset.config->Write("BAUD",event.GetString());
538 | preset.SaveConfig();
539 | }
540 |
541 | void TCP2COMDialog::OncmbDatabitsSelect(wxCommandEvent& event)
542 | {
543 | FactoryPreset& preset = FactoryPreset::getPreset();
544 | preset.config->SetPath("/TCPServer");
545 | preset.config->Write("DATB",event.GetString());
546 | preset.SaveConfig();
547 | }
548 |
549 | void TCP2COMDialog::OncmbParitysSelect(wxCommandEvent& event)
550 | {
551 | FactoryPreset& preset = FactoryPreset::getPreset();
552 | preset.config->SetPath("/TCPServer");
553 | preset.config->Write("PARI",event.GetString());
554 | preset.SaveConfig();
555 | }
556 |
557 | /**
558 | * 计时器用于检测网络和串口的通信状态
559 | **/
560 | void TCP2COMDialog::OnTimer1Trigger(wxTimerEvent& event)
561 | {
562 | //检测网络状态
563 | NetCommService& netService = NetCommService::getService();
564 | if(netService.isOpen() && btnOpen->IsEnabled() == false) { //已开启网络
565 | if(netService.clientCount == 0) {
566 | labNetState->SetLabel("网络未连接...");
567 | labNetState->SetForegroundColour(*(wxColour *)wxYELLOW);
568 | }
569 | if(netService.clientCount == 1) {
570 | labNetState->SetLabel("网络连接正常!");
571 | labNetState->SetForegroundColour(*(wxColour *)wxBLUE);
572 | }
573 | if(netService.clientCount > 1) {
574 | labNetState->SetLabel("网络连接异常!");
575 | labNetState->SetForegroundColour(*(wxColour *)wxRED);
576 | }
577 | }else{
578 | labNetState->SetLabel("网络未打开...");
579 | labNetState->SetForegroundColour(*(wxColour *)wxBLACK);
580 | }
581 | //----------------------------------------------
582 | //检测串口状态
583 | SerialCommService& compService = SerialCommService::getService();
584 | if(compService.isOpen()) {
585 | labComState->SetLabel("串口已打开!");
586 | labComState->SetForegroundColour(*(wxColour *)wxBLUE);
587 | }else{
588 | labComState->SetLabel("串口未打开...");
589 | labComState->SetForegroundColour(*(wxColour *)wxBLACK);
590 | }
591 | }
592 |
--------------------------------------------------------------------------------
/TCP2COMMain.h:
--------------------------------------------------------------------------------
1 | /***************************************************************
2 | * Name: TCP2COMMain.h
3 | * Purpose: Defines Application Frame
4 | * Author: David (lw.7@foxmail.com)
5 | * Created: 2019-05-07
6 | * Copyright: David ()
7 | * License:
8 | **************************************************************/
9 |
10 | #ifndef TCP2COMMAIN_H
11 | #define TCP2COMMAIN_H
12 |
13 | //(*Headers(TCP2COMDialog)
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 | #include
20 | #include
21 | #include
22 | #include
23 | //*)
24 |
25 | #include "FrameObserver.h"
26 |
27 | class TCP2COMDialog: public wxDialog, public FrameObserver
28 | {
29 | public:
30 |
31 | TCP2COMDialog(wxWindow* parent,wxWindowID id = -1);
32 | virtual ~TCP2COMDialog();
33 |
34 | void updateComports(); //每次重新加载虚拟串口列表后,跟着刷新下拉列表框的选项
35 |
36 | private:
37 |
38 | //(*Handlers(TCP2COMDialog)
39 | void OnQuit(wxCommandEvent& event);
40 | void OnAbout(wxCommandEvent& event);
41 | void OnInit(wxInitDialogEvent& event);
42 | void OnbtnInstallClick(wxCommandEvent& event);
43 | void OnbtnReloadClick(wxCommandEvent& event);
44 | void OnbtnRemoveClick(wxCommandEvent& event);
45 | void OnbtnAddPairClick(wxCommandEvent& event);
46 | void OnbtnOpenClick(wxCommandEvent& event);
47 | void OnbtnStopClick(wxCommandEvent& event);
48 | void OncmbCompSelect(wxCommandEvent& event);
49 | void OnClose(wxCloseEvent& event);
50 | void OncmbBaudrateSelect(wxCommandEvent& event);
51 | void OncmbDatabitsSelect(wxCommandEvent& event);
52 | void OncmbParitysSelect(wxCommandEvent& event);
53 | void OnTimer1Trigger(wxTimerEvent& event);
54 | //*)
55 |
56 | //(*Identifiers(TCP2COMDialog)
57 | static const long ID_STATICTEXT1;
58 | static const long ID_STATICTEXT2;
59 | static const long ID_TEXTCTRL1;
60 | static const long ID_STATICTEXT3;
61 | static const long ID_TEXTCTRL2;
62 | static const long ID_STATICLINE1;
63 | static const long ID_STATICTEXT9;
64 | static const long ID_CHOICE2;
65 | static const long ID_STATICTEXT10;
66 | static const long ID_CHOICE3;
67 | static const long ID_STATICTEXT11;
68 | static const long ID_CHOICE4;
69 | static const long ID_STATICTEXT12;
70 | static const long ID_CHOICE5;
71 | static const long ID_BUTTON1;
72 | static const long ID_BUTTON2;
73 | static const long ID_STATICTEXT6;
74 | static const long ID_STATICLINE3;
75 | static const long ID_STATICTEXT7;
76 | static const long ID_STATICLINE2;
77 | static const long ID_STATICTEXT5;
78 | static const long ID_LISTBOX1;
79 | static const long ID_TEXTCTRL3;
80 | static const long ID_STATICTEXT8;
81 | static const long ID_TEXTCTRL4;
82 | static const long ID_BUTTON3;
83 | static const long ID_BUTTON4;
84 | static const long ID_BUTTON5;
85 | static const long ID_BUTTON6;
86 | static const long ID_TIMER1;
87 | //*)
88 |
89 | //(*Declarations(TCP2COMDialog)
90 | wxBoxSizer* BoxSizer1;
91 | wxButton* btnAddPair;
92 | wxButton* btnClose;
93 | wxButton* btnInstall;
94 | wxButton* btnOpen;
95 | wxButton* btnReload;
96 | wxButton* btnRemove;
97 | wxChoice* cmbBaudrate;
98 | wxChoice* cmbComport;
99 | wxChoice* cmbDatabits;
100 | wxChoice* cmbParitys;
101 | wxListBox* listComPairs;
102 | wxStaticLine* StaticLine1;
103 | wxStaticLine* StaticLine2;
104 | wxStaticLine* StaticLine3;
105 | wxStaticText* StaticText10;
106 | wxStaticText* StaticText11;
107 | wxStaticText* StaticText12;
108 | wxStaticText* StaticText1;
109 | wxStaticText* StaticText2;
110 | wxStaticText* StaticText3;
111 | wxStaticText* StaticText5;
112 | wxStaticText* StaticText8;
113 | wxStaticText* StaticText9;
114 | wxStaticText* labComState;
115 | wxStaticText* labNetState;
116 | wxTextCtrl* txtCompA;
117 | wxTextCtrl* txtCompB;
118 | wxTextCtrl* txtHost;
119 | wxTextCtrl* txtPort;
120 | wxTimer Timer1;
121 | //*)
122 |
123 | //观察者模式的接收函数
124 | void onReciveData(FrameObserver::DataSource source,uint8_t * data,size_t len);
125 |
126 | DECLARE_EVENT_TABLE()
127 | };
128 |
129 | #endif // TCP2COMMAIN_H
130 |
--------------------------------------------------------------------------------
/bin/Debug/com0com_x64/ReadMe.txt:
--------------------------------------------------------------------------------
1 | =============================
2 | Null-modem emulator (com0com)
3 | =============================
4 |
5 | INTRODUCTION
6 | ============
7 |
8 | The Null-modem emulator is an open source kernel-mode virtual serial
9 | port driver for Windows, available freely under GPL license.
10 | You can create an unlimited number of virtual COM port
11 | pairs and use any pair to connect one application to another.
12 | Each COM port pair provides two COM ports with default names starting
13 | at CNCA0 and CNCB0. The output to one port is the input from other
14 | port and vice versa.
15 |
16 | Usually one port of the pair is used by Windows application that
17 | requires a COM port to communicate with a device and other port is
18 | used by device emulation program.
19 |
20 | For example, to send/receive faxes over IP you can connect Windows Fax
21 | application to CNCA0 port and t38modem (http://t38modem.sourceforge.net/)
22 | to CNCB0 port. In this case the t38modem is a fax modem emulation program.
23 |
24 | In conjunction with the hub4com the com0com allows you to
25 | - handle data and signals from a single real serial device by a number of
26 | different applications. For example, several applications can share data
27 | from one GPS device;
28 | - use real serial ports of remote computer like if they exist on the local
29 | computer (supports RFC 2217).
30 |
31 | The homepage for com0com project is http://com0com.sourceforge.net/.
32 |
33 |
34 | INSTALLING
35 | ==========
36 |
37 | NOTE (x64-based Windows Vista/Windows Server 2008/Windows 7/8):
38 | The com0com.sys is a test-signed kernel-mode driver that will not load by
39 | default. To enable test signing, enter command:
40 |
41 | bcdedit.exe -set TESTSIGNING ON
42 |
43 | and reboot the computer.
44 |
45 | NOTE:
46 | Enabling test signing will impair computer security.
47 |
48 | Simply run the installer (setup.exe). An installation wizard will guide
49 | you through the required steps.
50 | If the Found New Hardware Wizard will pop up then
51 | - select "No, not this time" and click Next;
52 | - select "Install the software automatically (Recommended)" and click Next.
53 | The one COM port pair with names CNCA0 and CNCB0 will be available on your
54 | system after the installation.
55 |
56 | You can add more pairs with the Setup Command Prompt:
57 |
58 | 1. Launch the Setup Command Prompt shortcut.
59 | 2. Enter the install command, for example:
60 |
61 | command> install - -
62 |
63 | The system will create 3 new virtual devices. One of the devices has
64 | name "com0com - bus for serial port pair emulator" and other two of
65 | them have name "com0com - serial port emulator" and located on CNCAn
66 | and CNCBn ports.
67 |
68 | To get more info enter the help command, for example:
69 |
70 | command> help
71 |
72 | Alternatively to setup ports you can invoke GUI-based setup utility by
73 | launching Setup shortcut (Microsoft .NET Framework 2.0 is required).
74 |
75 | TESTING
76 | =======
77 |
78 | 1. Start the HyperTerminal on CNCA0 port.
79 | 2. Start the HyperTerminal on CNCB0 port.
80 | 3. The output to CNCA0 port should be the input from CNCB0 port and
81 | vice versa.
82 |
83 |
84 | UNINSTALLING
85 | ============
86 |
87 | Simply launch the com0com's Uninstall shortcut in the Start Menu or remove
88 | the "Null-modem emulator (com0com)" entry from the "Add/Remove Programs"
89 | section in the Control Panel. An uninstallation wizard will guide
90 | you through the required steps.
91 |
92 | HINT: To uninstall the old version of com0com (distributed w/o installer)
93 | install the new one and then uninstall it.
94 |
95 |
96 | FAQs & HOWTOs
97 | =============
98 |
99 | Q. Is it possible to run com0com on Windows 9x platform?
100 | A. No, it is not possible. You need Windows 2000 platform or newer.
101 |
102 | Q. Is it possible to install or uninstall com0com silently (with no user
103 | intervention and no user interface)?
104 | A. Yes, it's possible with /S option, for example:
105 |
106 | setup.exe /S
107 | "%ProgramFiles%\com0com\uninstall.exe" /S
108 |
109 | You can specify the installation directory with /D option, for example:
110 |
111 | setup.exe /S /D=C:\Program Files\com0com
112 |
113 | NOTE: Silent installation of com0com will not install any port pairs by
114 | default {it can be overriden by setting CNC_INSTALL_CNCA0_CNCB0_PORTS
115 | and/or CNC_INSTALL_COMX_COMX_PORTS environment variables).
116 |
117 | Q. What are the other setup.exe command line options?
118 | A. The command line options of setup.exe and uninstall.exe listed in
119 | NSIS Users Manual, section 3.2 Installer Usage:
120 |
121 | http://nsis.sourceforge.net/Docs/Chapter3.html#3.2
122 |
123 | Additionally the following environment variables can be used.
124 |
125 | To change behaviour of setup.exe:
126 |
127 | CNC_INSTALL_START_MENU_SHORTCUTS={YES|NO} - select/unselect "Start Menu Shortcuts"
128 | CNC_INSTALL_CNCA0_CNCB0_PORTS={YES|NO} - select/unselect "CNCA0 <-> CNCB0"
129 | CNC_INSTALL_COMX_COMX_PORTS={YES|NO} - select/unselect "COM# <-> COM#"
130 | CNC_INSTALL_SKIP_SETUP_PREINSTALL={YES|NO} - skip preinstalling/updating driver
131 |
132 | To change behaviour of uninstall.exe:
133 |
134 | CNC_UNINSTALL_SKIP_SETUP_UNINSTALL={YES|NO} - skip uninstalling devices and driver
135 |
136 | Q. Is it possible to change the names CNCA0 and CNCB0 to COM8 and COM9?
137 | A. Yes, it's possible. To change the names:
138 |
139 | 1. Launch the Setup Command Prompt shortcut.
140 | 2. Enter the change commands, for example:
141 |
142 | command> change CNCA0 PortName=COM8
143 | command> change CNCB0 PortName=COM9
144 |
145 | Alternatively you can set names to 'COM#', for example:
146 |
147 | command> change CNCA0 PortName=COM#
148 | command> change CNCB0 PortName=COM#
149 |
150 | If parameter 'PortName=COM#' is used then the Ports class installer will be
151 | invoked to set the real port name. The Ports class installer selects the COM
152 | port number and sets the real port name to COM, where is the selected
153 | port number. After installing the Ports class port you can use the list
154 | command to get the real port name and the parameter RealPortName=COM to
155 | change the real port name, for example:
156 |
157 | command> list
158 | CNCA0 PortName=COM#,RealPortName=COM3
159 | CNCB0 PortName=COM#,RealPortName=COM4
160 | command> change CNCA0 RealPortName=COM8
161 | command> change CNCB0 RealPortName=COM9
162 | command> list
163 | CNCA0 PortName=COM#,RealPortName=COM8
164 | CNCB0 PortName=COM#,RealPortName=COM9
165 |
166 | Q. The baud rate setting does not seem to make a difference: data is always
167 | transferred at the same speed. How to enable the baud rate emulation?
168 | A. To enable baud rate emulation for transferring data from CNCA0 to CNCB0:
169 |
170 | 1. Launch the Setup Command Prompt shortcut.
171 | 2. Enter the change command, for example:
172 |
173 | command> change CNCA0 EmuBR=yes
174 |
175 | Q. The HyperTerminal test succeeds, but I get a failure when trying to open the
176 | port with CreateFile("CNCA0", ...). GetLastError() returns ERROR_FILE_NOT_FOUND.
177 | A. You must prefix the port name with the special characters "\\.\". Try to open
178 | the port with CreateFile("\\\\.\\CNCA0", ...).
179 |
180 | Q. My application hangs during its startup when it sends anything to one paired
181 | COM port. The only way to unhang it is to start HyperTerminal, which is connected
182 | to the other paired COM port. I didn't have this problem with physical serial
183 | ports.
184 | A. Your application can hang because receive buffer overrun is disabled by
185 | default. You can fix the problem by enabling receive buffer overrun for the
186 | receiving port. Also, to prevent some flow control issues you need to enable
187 | baud rate emulation for the sending port. So, if your application use port CNCA0
188 | and other paired port is CNCB0, then:
189 |
190 | 1. Launch the Setup Command Prompt shortcut.
191 | 2. Enter the change commands, for example:
192 |
193 | command> change CNCB0 EmuOverrun=yes
194 | command> change CNCA0 EmuBR=yes
195 |
196 | Q. When the corresponding port of a pair is not open, some characters will remain
197 | in the ouput buffer of the sending port and be output upon the next connection.
198 | Any clue on a possible workaround?
199 | A. It's a correct behavior if receive buffer overrun is disabled (by default). If
200 | you need behavior where those characters should be lost (like real null modem do)
201 | then enable receive buffer overrun for the receiving port. Also, to prevent some
202 | flow control issues enable baud rate emulation for the sending port. So, if
203 | sending port is CNCA0 and receiving port is CNCB0, then:
204 |
205 | 1. Launch the Setup Command Prompt shortcut.
206 | 2. Enter the change commands, for example:
207 |
208 | command> change CNCB0 EmuOverrun=yes
209 | command> change CNCA0 EmuBR=yes
210 |
211 | Q. I have to write an application connected to one side of the com0com port pair,
212 | and I don't want users to 'see' all the virtual ports created by com0com, but
213 | only the really available ones.
214 | A. if your application use port CNCB0 and other (used by users) paired port is CNCA0,
215 | then CNCB0 can be 'hidden' and CNCA0 can be 'shown' on opening CNCB0 by your
216 | application. To enable it:
217 |
218 | 1. Launch the Setup Command Prompt shortcut.
219 | 2. Enter the change commands:
220 |
221 | command> change CNCB0 ExclusiveMode=yes
222 | command> change CNCA0 PlugInMode=yes
223 |
224 | Q. When I add a port pair, why does Windows XP always pops up a Found New Hardware
225 | Wizard? The drivers are already there and it can install them silently in the
226 | background and report when the device is ready.
227 | A. It's because there is not signed com0com.cat catalog file. It can be created on
228 | your test computer by this way:
229 |
230 | 1. Create a catalog file, for example:
231 |
232 | cd "C:\Program Files\com0com"
233 | inf2cat /driver:. /os:XP_X86
234 |
235 | 2. Create a test certificate, for example:
236 |
237 | makecert -r -n "CN=com0com (test)" -sv com0com.pvk com0com.cer
238 | pvk2pfx -pvk com0com.pvk -spc com0com.cer -pfx com0com.pfx
239 |
240 | 3. Sign the catalog file by test certificate, for example:
241 |
242 | signtool sign /v /f com0com.pfx com0com.cat
243 |
244 | 4. Install a test certificate to the Trusted Root Certification Authorities
245 | certificate store and the Trusted Publishers certificate store, for example:
246 |
247 | certmgr -add com0com.cer -s -r localMachine root
248 | certmgr -add com0com.cer -s -r localMachine trustedpublisher
249 |
250 | The inf2cat, makecert, pvk2pfx, signtool and certmgr tools are included in the
251 | Windows Driver Kit (WDK).
252 |
253 | Alternatively you can cancel Found New Hardware Wizard and install driver by
254 | update command, for example:
255 |
256 | setupc install - -
257 | setupc update
258 |
259 | Additionally you can temporary suppress Plug and Play-related UI messages, for
260 | example:
261 |
262 | reg add HKLM\Software\Policies\Microsoft\Windows\DeviceInstall\Settings /v SuppressNewHWUI /t REG_DWORD /d 1 /f
263 | setupc install - -
264 | setupc update
265 | reg add HKLM\Software\Policies\Microsoft\Windows\DeviceInstall\Settings /v SuppressNewHWUI /t REG_DWORD /d 0 /f
266 |
267 | See http://support.microsoft.com/kb/938596 for more info.
268 |
269 | Q. How to monitor and get the paired port settings (baud rate, byte size, parity
270 | and stop bits)?
271 | A. It can be done with extended IOCTL_SERIAL_LSRMST_INSERT. See example in
272 |
273 | http://com0com.sourceforge.net/examples/LSRMST_INSERT/tstser.cpp
274 |
275 | Q. To transfer state to CTS and DSR they wired to RTS and DTR. How to transfer
276 | state to DCD and RING?
277 | A. The OUT1 can be wired to DCD and OUT2 to RING. Use extended
278 | IOCTL_SERIAL_SET_MODEM_CONTROL and IOCTL_SERIAL_GET_MODEM_CONTROL to change
279 | state of OUT1 and OUT2. See example in
280 |
281 | http://com0com.sourceforge.net/examples/MODEM_CONTROL/tstser.cpp
282 |
283 | Q. What version am I running?
284 | A. In the device manager, the driver properties page shows the version and date
285 | of the INF files, while the driver details page shows a version of
286 | com0com.sys file. The version of com0com.sys file is the version that you
287 | are running.
288 |
289 | Q. I'm able to use some application to talk to some hardware using com2tcp when
290 | both the com2tcp 'server' and 'client' are running on the same computer.
291 | When I try to move the client to a remote computer the application gives me
292 | a timeout message and has no settings to increase the timeout. How to fix
293 | the problem?
294 | A. Try to ajust AddRTTO and AddRITO params for application's COM port:
295 |
296 | 1. Launch the Setup Command Prompt shortcut.
297 | 2. Enter the change command, for example:
298 |
299 | command> change CNCA0 AddRTTO=100,AddRITO=100
300 |
301 | Q. I would like to be able to add, remove and rename virtual comm ports from my
302 | own custom application. Is there an API that I can use or some command line
303 | utility that will do the job?
304 | A. The setupc.exe is a command line utility that will do the job. To get more
305 | info enter:
306 |
307 | setupc help
308 |
309 | BTW: The setupg.exe is a GUI wrapper for setupc.exe.
310 |
311 | Q. I need to use com0com ports with an application that doesn't recognize
312 | com0com ports as "real" com ports. It does not see a com0com port even
313 | though I have changed it's name to COMx. Is there a com0com settings that
314 | will make the port appear to be a "real" com port?
315 | A. Yes, it is. You should put the port to the Ports class, for example:
316 |
317 | 1. Launch the Setup Command Prompt shortcut.
318 | 2. Install the pair of ports, were one of them has name COM#, for example:
319 |
320 | command> install PortName=COM# -
321 |
322 | Q. I have to somehow add a "fake" PNP device in device manager and have it
323 | connected under COM3. I use PNPComSimulator (http://www.bds.dogma.net/pnp_part2.htm),
324 | which can fake a PNP Serial device's response when polled by DevManager.
325 | Is it possible to have the device manager look for PNP equipement via com0com?
326 | A. Yes, it is. The simplest way is to put the port to the Ports class, for example:
327 |
328 | 1. Launch the Setup Command Prompt shortcut.
329 | 2. Install the pair of ports, were one of them has name COM#, for example:
330 |
331 | command> install 0 PortName=COM# -
332 |
333 | After installing the Ports class port you can use the list command to get
334 | the real port name, for example:
335 |
336 | command> list
337 | CNCA0 PortName=COM#,RealPortName=COM3
338 | CNCB0 PortName=-
339 |
340 | Q. Is it possible to configure the com0com to randomly corrupt the data? It
341 | would be nice to have this feature so that we can test our application
342 | robustness.
343 | A. Yes, it's possible by setting EmuNoise parameter:
344 |
345 | 1. Launch the Setup Command Prompt shortcut.
346 | 2. Enter the change command, for example:
347 |
348 | command> change CNCA0 EmuNoise=0.00001,EmuBR=yes,EmuOverrun=yes
349 | command> change CNCB0 EmuNoise=0.00001,EmuBR=yes,EmuOverrun=yes
350 |
351 | Now each character frame (including idle frames) will be corrupted with
352 | probability 0.00001.
353 |
354 | Q. What is the maximum number of port pairs that can be defined?
355 | A. It depends from your system. The com0com itself has internal limit
356 | 1000000 port pairs.
357 |
358 | Q. In my application, users could be installing up to 250 com port pairs.
359 | Initially, the installation is fairly quick, but each additional com port
360 | generally takes longer to install than the previous one. It quickly
361 | becomes unacceptable for a user to be expected to wait for the installation.
362 | A. It's because the installing of each next port pair requires to update driver
363 | for all installed pairs. You can speed up installing of multiple com port
364 | pairs by using install commands with --no-update option and then use
365 | install command w/o --no-update option, for example:
366 |
367 | command> --no-update install - -
368 | command> --no-update install - -
369 | ...
370 | command> --no-update install - -
371 | command> install
372 |
373 | The example of the batch program:
374 |
375 | cd /D "%ProgramFiles%\com0com"
376 | FOR /L %%i IN (0,1,249) DO setupc --no-update install - -
377 | setupc install
378 |
379 | Q. I am using the 64-bit version of com0com and I am having trouble. I'd like
380 | to debug this, but I can not find any free serial port monitor software,
381 | like portmon that works with a 64-bit OS. Does anyone know of any?
382 | A. You can try to use internal com0com's tracing for debuging:
383 |
384 | - get trace.reg file from com0com's source;
385 | - import trace.reg to the Registry;
386 | - reload driver (or reboot system);
387 | - do your tests and watch results in C:\com0com.log file.
388 |
389 | To disable tracing reinstall com0com or import trace_disable.reg to the
390 | Registry and reload driver.
391 |
--------------------------------------------------------------------------------
/bin/Debug/com0com_x64/cncport.inf:
--------------------------------------------------------------------------------
1 | ;******************************************************************************
2 | ;
3 | ; cncport.inf
4 | ;
5 | ; Installation file for the Null-modem emulator driver.
6 | ;
7 | ; Copyright (c) 2010-2012 Vyacheslav Frolov
8 | ;
9 | ;******************************************************************************
10 |
11 | [Version]
12 | Signature = "$Windows NT$"
13 | Provider = %VF%
14 | Class = CNCPorts
15 | ClassGUID = {df799e12-3c56-421b-b298-b6d3642bc878}
16 | CatalogFile = com0com.cat
17 | ; MM/DD/YYYY
18 | DriverVer = 06/04/2012,3.0.0.0
19 | UninstallInfTag = {df799e12-3c56-421b-b298-b6d3642bc878}
20 |
21 | ;******************************************************************************
22 | ;
23 | ; Driver information
24 | ;
25 | ;******************************************************************************
26 |
27 | [Manufacturer]
28 | %VF% = com0com, NTx86, NTia64, NTamd64
29 |
30 | [ControlFlags]
31 | ExcludeFromSelect = com0com\cncport
32 |
33 | [com0com]
34 | %com0com.PortDesc% = com0com_inst_port, com0com\cncport
35 |
36 | [com0com.NTx86]
37 | %com0com.PortDesc% = com0com_inst_port, com0com\cncport
38 |
39 | [com0com.NTia64]
40 | %com0com.PortDesc% = com0com_inst_port, com0com\cncport
41 |
42 | [com0com.NTamd64]
43 | %com0com.PortDesc% = com0com_inst_port, com0com\cncport
44 |
45 | ;******************************************************************************
46 | ;
47 | ; Port install section
48 | ;
49 | ;******************************************************************************
50 |
51 | [com0com_inst_port]
52 | AddReg = com0com_AddReg
53 | ;Include = msports.inf
54 | ;Needs = SerialEnumerator.NT
55 |
56 | [com0com_inst_port.Services]
57 | AddService = com0com, %SPSVCINST_ASSOCSERVICE%, com0com_Service_Inst, com0com_EventLog_Inst
58 | ;Include = msports.inf
59 | ;Needs = SerialEnumerator.NT.Services
60 |
61 | [com0com_inst_port.HW]
62 | AddReg = com0com_HW_AddReg
63 |
64 | [com0com_AddReg]
65 |
66 | [com0com_HW_AddReg]
67 | ;HKR,,"UpperFilters",0x00010000,"serenum"
68 |
69 | ;******************************************************************************
70 | ;
71 | ; Common section
72 | ;
73 | ;******************************************************************************
74 |
75 | [com0com_Service_Inst]
76 | DisplayName = %com0com.SrvDesc%
77 | ServiceType = %SERVICE_KERNEL_DRIVER%
78 | StartType = %SERVICE_DEMAND_START%
79 | ErrorControl = %SERVICE_ERROR_NORMAL%
80 | ServiceBinary = %12%\com0com.sys
81 |
82 | [com0com_EventLog_Inst]
83 | AddReg = com0com_EventLog_AddReg
84 |
85 | [com0com_EventLog_AddReg]
86 | HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\com0com.sys"
87 | HKR,,TypesSupported,%REG_DWORD%,7
88 |
89 | ;******************************************************************************
90 | ;
91 | ; Strings
92 | ;
93 | ;******************************************************************************
94 |
95 | [Strings]
96 |
97 | SPSVCINST_ASSOCSERVICE = 0x00000002
98 |
99 | REG_EXPAND_SZ = 0x00020000
100 | REG_DWORD = 0x00010001
101 |
102 | SERVICE_KERNEL_DRIVER = 1
103 | SERVICE_DEMAND_START = 3
104 | SERVICE_ERROR_NORMAL = 1
105 |
106 | VF = "Vyacheslav Frolov"
107 | com0com.PortDesc = "com0com - serial port emulator"
108 | com0com.SrvDesc = "com0com - emulates the serial ports interconnected via a null-modem cable"
109 |
110 | ;******************************************************************************
111 |
--------------------------------------------------------------------------------
/bin/Debug/com0com_x64/com0com.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allweshare/TCP2COM/3ec58dd62900ec832f8b7b73df621ce2ec52c44c/bin/Debug/com0com_x64/com0com.cat
--------------------------------------------------------------------------------
/bin/Debug/com0com_x64/com0com.inf:
--------------------------------------------------------------------------------
1 | ;******************************************************************************
2 | ;
3 | ; com0com.inf
4 | ;
5 | ; Installation file for the Null-modem emulator driver.
6 | ;
7 | ; Copyright (c) 2004-2012 Vyacheslav Frolov
8 | ;
9 | ;******************************************************************************
10 |
11 | [Version]
12 | Signature = "$Windows NT$"
13 | Provider = %VF%
14 | Class = CNCPorts
15 | ClassGUID = {df799e12-3c56-421b-b298-b6d3642bc878}
16 | CatalogFile = com0com.cat
17 | ; MM/DD/YYYY
18 | DriverVer = 06/04/2012,3.0.0.0
19 | UninstallInfTag = {df799e12-3c56-421b-b298-b6d3642bc878}
20 |
21 | ;******************************************************************************
22 | ;
23 | ; Class section
24 | ;
25 | ;******************************************************************************
26 |
27 | [ClassInstall32]
28 | AddReg = com0com_ClassReg
29 |
30 | [com0com_ClassReg]
31 | HKR,,,0,%ClassName%
32 | HKR,,Icon,,-23
33 |
34 | ;******************************************************************************
35 | ;
36 | ; Source and Destination information
37 | ;
38 | ;******************************************************************************
39 |
40 | [SourceDisksNames]
41 | 1 = %DiskId1%,,,""
42 |
43 | [SourceDisksFiles]
44 | com0com.sys = 1,,
45 |
46 | [DestinationDirs]
47 | com0com_CopyDrivers = 12
48 |
49 | [com0com_CopyDrivers]
50 | com0com.sys
51 |
52 | ;******************************************************************************
53 | ;
54 | ; Driver information
55 | ;
56 | ;******************************************************************************
57 |
58 | [Manufacturer]
59 | %VF% = com0com, NTx86, NTia64, NTamd64
60 |
61 | [com0com]
62 | %com0com.BusDesc% = com0com_inst, root\com0com
63 |
64 | [com0com.NTx86]
65 | %com0com.BusDesc% = com0com_inst, root\com0com
66 |
67 | [com0com.NTia64]
68 | %com0com.BusDesc% = com0com_inst, root\com0com
69 |
70 | [com0com.NTamd64]
71 | %com0com.BusDesc% = com0com_inst, root\com0com
72 |
73 | ;******************************************************************************
74 | ;
75 | ; Bus install section
76 | ;
77 | ;******************************************************************************
78 |
79 | [com0com_inst]
80 | AddReg = com0com_AddReg
81 | CopyFiles = com0com_CopyDrivers
82 | CopyINF = cncport.inf
83 | ;CopyINF = comport.inf
84 |
85 | [com0com_inst.Services]
86 | AddService = com0com, %SPSVCINST_ASSOCSERVICE%, com0com_Service_Inst, com0com_EventLog_Inst
87 |
88 | [com0com_AddReg]
89 |
90 | ;******************************************************************************
91 | ;
92 | ; Common section
93 | ;
94 | ;******************************************************************************
95 |
96 | [com0com_Service_Inst]
97 | DisplayName = %com0com.SrvDesc%
98 | ServiceType = %SERVICE_KERNEL_DRIVER%
99 | StartType = %SERVICE_DEMAND_START%
100 | ErrorControl = %SERVICE_ERROR_NORMAL%
101 | ServiceBinary = %12%\com0com.sys
102 |
103 | [com0com_EventLog_Inst]
104 | AddReg = com0com_EventLog_AddReg
105 |
106 | [com0com_EventLog_AddReg]
107 | HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\com0com.sys"
108 | HKR,,TypesSupported,%REG_DWORD%,7
109 |
110 | ;******************************************************************************
111 | ;
112 | ; Strings
113 | ;
114 | ;******************************************************************************
115 |
116 | [Strings]
117 |
118 | SPSVCINST_ASSOCSERVICE = 0x00000002
119 |
120 | REG_EXPAND_SZ = 0x00020000
121 | REG_DWORD = 0x00010001
122 |
123 | SERVICE_KERNEL_DRIVER = 1
124 | SERVICE_DEMAND_START = 3
125 | SERVICE_ERROR_NORMAL = 1
126 |
127 | DiskId1 = "Installation Disk #1 (com0com - Null-modem emulator)"
128 | VF = "Vyacheslav Frolov"
129 | com0com.BusDesc = "com0com - bus for serial port pair emulator"
130 | com0com.SrvDesc = "com0com - emulates the serial ports interconnected via a null-modem cable"
131 | ClassName = "com0com - serial port emulators"
132 |
133 | ;******************************************************************************
134 |
--------------------------------------------------------------------------------
/bin/Debug/com0com_x64/com0com.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allweshare/TCP2COM/3ec58dd62900ec832f8b7b73df621ce2ec52c44c/bin/Debug/com0com_x64/com0com.sys
--------------------------------------------------------------------------------
/bin/Debug/com0com_x64/comport.inf:
--------------------------------------------------------------------------------
1 | ;******************************************************************************
2 | ;
3 | ; comport.inf
4 | ;
5 | ; Installation file for the Null-modem emulator driver.
6 | ;
7 | ; Copyright (c) 2010-2012 Vyacheslav Frolov
8 | ;
9 | ;******************************************************************************
10 |
11 | [Version]
12 | Signature = "$Windows NT$"
13 | Provider = %VF%
14 | Class = Ports
15 | ClassGUID = {4D36E978-E325-11CE-BFC1-08002BE10318}
16 | CatalogFile = com0com.cat
17 | ; MM/DD/YYYY
18 | DriverVer = 06/04/2012,3.0.0.0
19 | UninstallInfTag = {df799e12-3c56-421b-b298-b6d3642bc878}
20 |
21 | ;******************************************************************************
22 | ;
23 | ; Driver information
24 | ;
25 | ;******************************************************************************
26 |
27 | [Manufacturer]
28 | %VF% = com0com, NTx86, NTia64, NTamd64
29 |
30 | [ControlFlags]
31 | ExcludeFromSelect = com0com\comport
32 |
33 | [com0com]
34 | %com0com.PortDesc% = com0com_inst_port, com0com\comport
35 |
36 | [com0com.NTx86]
37 | %com0com.PortDesc% = com0com_inst_port, com0com\comport
38 |
39 | [com0com.NTia64]
40 | %com0com.PortDesc% = com0com_inst_port, com0com\comport
41 |
42 | [com0com.NTamd64]
43 | %com0com.PortDesc% = com0com_inst_port, com0com\comport
44 |
45 | ;******************************************************************************
46 | ;
47 | ; Port install section
48 | ;
49 | ;******************************************************************************
50 |
51 | [com0com_inst_port]
52 | AddReg = com0com_AddReg
53 | Include = msports.inf
54 | Needs = SerialEnumerator.NT
55 |
56 | [com0com_inst_port.Services]
57 | AddService = com0com, %SPSVCINST_ASSOCSERVICE%, com0com_Service_Inst, com0com_EventLog_Inst
58 | Include = msports.inf
59 | Needs = SerialEnumerator.NT.Services
60 |
61 | [com0com_inst_port.HW]
62 | AddReg = com0com_HW_AddReg
63 |
64 | [com0com_AddReg]
65 | ;HKR,,PortSubClass,1,01
66 | ;HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
67 |
68 | [com0com_HW_AddReg]
69 | HKR,,"UpperFilters",0x00010000,"serenum"
70 |
71 | ;******************************************************************************
72 | ;
73 | ; Common section
74 | ;
75 | ;******************************************************************************
76 |
77 | [com0com_Service_Inst]
78 | DisplayName = %com0com.SrvDesc%
79 | ServiceType = %SERVICE_KERNEL_DRIVER%
80 | StartType = %SERVICE_DEMAND_START%
81 | ErrorControl = %SERVICE_ERROR_NORMAL%
82 | ServiceBinary = %12%\com0com.sys
83 |
84 | [com0com_EventLog_Inst]
85 | AddReg = com0com_EventLog_AddReg
86 |
87 | [com0com_EventLog_AddReg]
88 | HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\com0com.sys"
89 | HKR,,TypesSupported,%REG_DWORD%,7
90 |
91 | ;******************************************************************************
92 | ;
93 | ; Strings
94 | ;
95 | ;******************************************************************************
96 |
97 | [Strings]
98 |
99 | SPSVCINST_ASSOCSERVICE = 0x00000002
100 |
101 | REG_EXPAND_SZ = 0x00020000
102 | REG_DWORD = 0x00010001
103 |
104 | SERVICE_KERNEL_DRIVER = 1
105 | SERVICE_DEMAND_START = 3
106 | SERVICE_ERROR_NORMAL = 1
107 |
108 | VF = "Vyacheslav Frolov"
109 | com0com.PortDesc = "com0com - serial port emulator"
110 | com0com.SrvDesc = "com0com - emulates the serial ports interconnected via a null-modem cable"
111 |
112 | ;******************************************************************************
113 |
--------------------------------------------------------------------------------
/bin/Debug/com0com_x86/ReadMe.txt:
--------------------------------------------------------------------------------
1 | =============================
2 | Null-modem emulator (com0com)
3 | =============================
4 |
5 | INTRODUCTION
6 | ============
7 |
8 | The Null-modem emulator is an open source kernel-mode virtual serial
9 | port driver for Windows, available freely under GPL license.
10 | You can create an unlimited number of virtual COM port
11 | pairs and use any pair to connect one application to another.
12 | Each COM port pair provides two COM ports with default names starting
13 | at CNCA0 and CNCB0. The output to one port is the input from other
14 | port and vice versa.
15 |
16 | Usually one port of the pair is used by Windows application that
17 | requires a COM port to communicate with a device and other port is
18 | used by device emulation program.
19 |
20 | For example, to send/receive faxes over IP you can connect Windows Fax
21 | application to CNCA0 port and t38modem (http://t38modem.sourceforge.net/)
22 | to CNCB0 port. In this case the t38modem is a fax modem emulation program.
23 |
24 | In conjunction with the hub4com the com0com allows you to
25 | - handle data and signals from a single real serial device by a number of
26 | different applications. For example, several applications can share data
27 | from one GPS device;
28 | - use real serial ports of remote computer like if they exist on the local
29 | computer (supports RFC 2217).
30 |
31 | The homepage for com0com project is http://com0com.sourceforge.net/.
32 |
33 |
34 | INSTALLING
35 | ==========
36 |
37 | NOTE (x64-based Windows Vista/Windows Server 2008/Windows 7/8):
38 | The com0com.sys is a test-signed kernel-mode driver that will not load by
39 | default. To enable test signing, enter command:
40 |
41 | bcdedit.exe -set TESTSIGNING ON
42 |
43 | and reboot the computer.
44 |
45 | NOTE:
46 | Enabling test signing will impair computer security.
47 |
48 | Simply run the installer (setup.exe). An installation wizard will guide
49 | you through the required steps.
50 | If the Found New Hardware Wizard will pop up then
51 | - select "No, not this time" and click Next;
52 | - select "Install the software automatically (Recommended)" and click Next.
53 | The one COM port pair with names CNCA0 and CNCB0 will be available on your
54 | system after the installation.
55 |
56 | You can add more pairs with the Setup Command Prompt:
57 |
58 | 1. Launch the Setup Command Prompt shortcut.
59 | 2. Enter the install command, for example:
60 |
61 | command> install - -
62 |
63 | The system will create 3 new virtual devices. One of the devices has
64 | name "com0com - bus for serial port pair emulator" and other two of
65 | them have name "com0com - serial port emulator" and located on CNCAn
66 | and CNCBn ports.
67 |
68 | To get more info enter the help command, for example:
69 |
70 | command> help
71 |
72 | Alternatively to setup ports you can invoke GUI-based setup utility by
73 | launching Setup shortcut (Microsoft .NET Framework 2.0 is required).
74 |
75 | TESTING
76 | =======
77 |
78 | 1. Start the HyperTerminal on CNCA0 port.
79 | 2. Start the HyperTerminal on CNCB0 port.
80 | 3. The output to CNCA0 port should be the input from CNCB0 port and
81 | vice versa.
82 |
83 |
84 | UNINSTALLING
85 | ============
86 |
87 | Simply launch the com0com's Uninstall shortcut in the Start Menu or remove
88 | the "Null-modem emulator (com0com)" entry from the "Add/Remove Programs"
89 | section in the Control Panel. An uninstallation wizard will guide
90 | you through the required steps.
91 |
92 | HINT: To uninstall the old version of com0com (distributed w/o installer)
93 | install the new one and then uninstall it.
94 |
95 |
96 | FAQs & HOWTOs
97 | =============
98 |
99 | Q. Is it possible to run com0com on Windows 9x platform?
100 | A. No, it is not possible. You need Windows 2000 platform or newer.
101 |
102 | Q. Is it possible to install or uninstall com0com silently (with no user
103 | intervention and no user interface)?
104 | A. Yes, it's possible with /S option, for example:
105 |
106 | setup.exe /S
107 | "%ProgramFiles%\com0com\uninstall.exe" /S
108 |
109 | You can specify the installation directory with /D option, for example:
110 |
111 | setup.exe /S /D=C:\Program Files\com0com
112 |
113 | NOTE: Silent installation of com0com will not install any port pairs by
114 | default {it can be overriden by setting CNC_INSTALL_CNCA0_CNCB0_PORTS
115 | and/or CNC_INSTALL_COMX_COMX_PORTS environment variables).
116 |
117 | Q. What are the other setup.exe command line options?
118 | A. The command line options of setup.exe and uninstall.exe listed in
119 | NSIS Users Manual, section 3.2 Installer Usage:
120 |
121 | http://nsis.sourceforge.net/Docs/Chapter3.html#3.2
122 |
123 | Additionally the following environment variables can be used.
124 |
125 | To change behaviour of setup.exe:
126 |
127 | CNC_INSTALL_START_MENU_SHORTCUTS={YES|NO} - select/unselect "Start Menu Shortcuts"
128 | CNC_INSTALL_CNCA0_CNCB0_PORTS={YES|NO} - select/unselect "CNCA0 <-> CNCB0"
129 | CNC_INSTALL_COMX_COMX_PORTS={YES|NO} - select/unselect "COM# <-> COM#"
130 | CNC_INSTALL_SKIP_SETUP_PREINSTALL={YES|NO} - skip preinstalling/updating driver
131 |
132 | To change behaviour of uninstall.exe:
133 |
134 | CNC_UNINSTALL_SKIP_SETUP_UNINSTALL={YES|NO} - skip uninstalling devices and driver
135 |
136 | Q. Is it possible to change the names CNCA0 and CNCB0 to COM8 and COM9?
137 | A. Yes, it's possible. To change the names:
138 |
139 | 1. Launch the Setup Command Prompt shortcut.
140 | 2. Enter the change commands, for example:
141 |
142 | command> change CNCA0 PortName=COM8
143 | command> change CNCB0 PortName=COM9
144 |
145 | Alternatively you can set names to 'COM#', for example:
146 |
147 | command> change CNCA0 PortName=COM#
148 | command> change CNCB0 PortName=COM#
149 |
150 | If parameter 'PortName=COM#' is used then the Ports class installer will be
151 | invoked to set the real port name. The Ports class installer selects the COM
152 | port number and sets the real port name to COM, where is the selected
153 | port number. After installing the Ports class port you can use the list
154 | command to get the real port name and the parameter RealPortName=COM to
155 | change the real port name, for example:
156 |
157 | command> list
158 | CNCA0 PortName=COM#,RealPortName=COM3
159 | CNCB0 PortName=COM#,RealPortName=COM4
160 | command> change CNCA0 RealPortName=COM8
161 | command> change CNCB0 RealPortName=COM9
162 | command> list
163 | CNCA0 PortName=COM#,RealPortName=COM8
164 | CNCB0 PortName=COM#,RealPortName=COM9
165 |
166 | Q. The baud rate setting does not seem to make a difference: data is always
167 | transferred at the same speed. How to enable the baud rate emulation?
168 | A. To enable baud rate emulation for transferring data from CNCA0 to CNCB0:
169 |
170 | 1. Launch the Setup Command Prompt shortcut.
171 | 2. Enter the change command, for example:
172 |
173 | command> change CNCA0 EmuBR=yes
174 |
175 | Q. The HyperTerminal test succeeds, but I get a failure when trying to open the
176 | port with CreateFile("CNCA0", ...). GetLastError() returns ERROR_FILE_NOT_FOUND.
177 | A. You must prefix the port name with the special characters "\\.\". Try to open
178 | the port with CreateFile("\\\\.\\CNCA0", ...).
179 |
180 | Q. My application hangs during its startup when it sends anything to one paired
181 | COM port. The only way to unhang it is to start HyperTerminal, which is connected
182 | to the other paired COM port. I didn't have this problem with physical serial
183 | ports.
184 | A. Your application can hang because receive buffer overrun is disabled by
185 | default. You can fix the problem by enabling receive buffer overrun for the
186 | receiving port. Also, to prevent some flow control issues you need to enable
187 | baud rate emulation for the sending port. So, if your application use port CNCA0
188 | and other paired port is CNCB0, then:
189 |
190 | 1. Launch the Setup Command Prompt shortcut.
191 | 2. Enter the change commands, for example:
192 |
193 | command> change CNCB0 EmuOverrun=yes
194 | command> change CNCA0 EmuBR=yes
195 |
196 | Q. When the corresponding port of a pair is not open, some characters will remain
197 | in the ouput buffer of the sending port and be output upon the next connection.
198 | Any clue on a possible workaround?
199 | A. It's a correct behavior if receive buffer overrun is disabled (by default). If
200 | you need behavior where those characters should be lost (like real null modem do)
201 | then enable receive buffer overrun for the receiving port. Also, to prevent some
202 | flow control issues enable baud rate emulation for the sending port. So, if
203 | sending port is CNCA0 and receiving port is CNCB0, then:
204 |
205 | 1. Launch the Setup Command Prompt shortcut.
206 | 2. Enter the change commands, for example:
207 |
208 | command> change CNCB0 EmuOverrun=yes
209 | command> change CNCA0 EmuBR=yes
210 |
211 | Q. I have to write an application connected to one side of the com0com port pair,
212 | and I don't want users to 'see' all the virtual ports created by com0com, but
213 | only the really available ones.
214 | A. if your application use port CNCB0 and other (used by users) paired port is CNCA0,
215 | then CNCB0 can be 'hidden' and CNCA0 can be 'shown' on opening CNCB0 by your
216 | application. To enable it:
217 |
218 | 1. Launch the Setup Command Prompt shortcut.
219 | 2. Enter the change commands:
220 |
221 | command> change CNCB0 ExclusiveMode=yes
222 | command> change CNCA0 PlugInMode=yes
223 |
224 | Q. When I add a port pair, why does Windows XP always pops up a Found New Hardware
225 | Wizard? The drivers are already there and it can install them silently in the
226 | background and report when the device is ready.
227 | A. It's because there is not signed com0com.cat catalog file. It can be created on
228 | your test computer by this way:
229 |
230 | 1. Create a catalog file, for example:
231 |
232 | cd "C:\Program Files\com0com"
233 | inf2cat /driver:. /os:XP_X86
234 |
235 | 2. Create a test certificate, for example:
236 |
237 | makecert -r -n "CN=com0com (test)" -sv com0com.pvk com0com.cer
238 | pvk2pfx -pvk com0com.pvk -spc com0com.cer -pfx com0com.pfx
239 |
240 | 3. Sign the catalog file by test certificate, for example:
241 |
242 | signtool sign /v /f com0com.pfx com0com.cat
243 |
244 | 4. Install a test certificate to the Trusted Root Certification Authorities
245 | certificate store and the Trusted Publishers certificate store, for example:
246 |
247 | certmgr -add com0com.cer -s -r localMachine root
248 | certmgr -add com0com.cer -s -r localMachine trustedpublisher
249 |
250 | The inf2cat, makecert, pvk2pfx, signtool and certmgr tools are included in the
251 | Windows Driver Kit (WDK).
252 |
253 | Alternatively you can cancel Found New Hardware Wizard and install driver by
254 | update command, for example:
255 |
256 | setupc install - -
257 | setupc update
258 |
259 | Additionally you can temporary suppress Plug and Play-related UI messages, for
260 | example:
261 |
262 | reg add HKLM\Software\Policies\Microsoft\Windows\DeviceInstall\Settings /v SuppressNewHWUI /t REG_DWORD /d 1 /f
263 | setupc install - -
264 | setupc update
265 | reg add HKLM\Software\Policies\Microsoft\Windows\DeviceInstall\Settings /v SuppressNewHWUI /t REG_DWORD /d 0 /f
266 |
267 | See http://support.microsoft.com/kb/938596 for more info.
268 |
269 | Q. How to monitor and get the paired port settings (baud rate, byte size, parity
270 | and stop bits)?
271 | A. It can be done with extended IOCTL_SERIAL_LSRMST_INSERT. See example in
272 |
273 | http://com0com.sourceforge.net/examples/LSRMST_INSERT/tstser.cpp
274 |
275 | Q. To transfer state to CTS and DSR they wired to RTS and DTR. How to transfer
276 | state to DCD and RING?
277 | A. The OUT1 can be wired to DCD and OUT2 to RING. Use extended
278 | IOCTL_SERIAL_SET_MODEM_CONTROL and IOCTL_SERIAL_GET_MODEM_CONTROL to change
279 | state of OUT1 and OUT2. See example in
280 |
281 | http://com0com.sourceforge.net/examples/MODEM_CONTROL/tstser.cpp
282 |
283 | Q. What version am I running?
284 | A. In the device manager, the driver properties page shows the version and date
285 | of the INF files, while the driver details page shows a version of
286 | com0com.sys file. The version of com0com.sys file is the version that you
287 | are running.
288 |
289 | Q. I'm able to use some application to talk to some hardware using com2tcp when
290 | both the com2tcp 'server' and 'client' are running on the same computer.
291 | When I try to move the client to a remote computer the application gives me
292 | a timeout message and has no settings to increase the timeout. How to fix
293 | the problem?
294 | A. Try to ajust AddRTTO and AddRITO params for application's COM port:
295 |
296 | 1. Launch the Setup Command Prompt shortcut.
297 | 2. Enter the change command, for example:
298 |
299 | command> change CNCA0 AddRTTO=100,AddRITO=100
300 |
301 | Q. I would like to be able to add, remove and rename virtual comm ports from my
302 | own custom application. Is there an API that I can use or some command line
303 | utility that will do the job?
304 | A. The setupc.exe is a command line utility that will do the job. To get more
305 | info enter:
306 |
307 | setupc help
308 |
309 | BTW: The setupg.exe is a GUI wrapper for setupc.exe.
310 |
311 | Q. I need to use com0com ports with an application that doesn't recognize
312 | com0com ports as "real" com ports. It does not see a com0com port even
313 | though I have changed it's name to COMx. Is there a com0com settings that
314 | will make the port appear to be a "real" com port?
315 | A. Yes, it is. You should put the port to the Ports class, for example:
316 |
317 | 1. Launch the Setup Command Prompt shortcut.
318 | 2. Install the pair of ports, were one of them has name COM#, for example:
319 |
320 | command> install PortName=COM# -
321 |
322 | Q. I have to somehow add a "fake" PNP device in device manager and have it
323 | connected under COM3. I use PNPComSimulator (http://www.bds.dogma.net/pnp_part2.htm),
324 | which can fake a PNP Serial device's response when polled by DevManager.
325 | Is it possible to have the device manager look for PNP equipement via com0com?
326 | A. Yes, it is. The simplest way is to put the port to the Ports class, for example:
327 |
328 | 1. Launch the Setup Command Prompt shortcut.
329 | 2. Install the pair of ports, were one of them has name COM#, for example:
330 |
331 | command> install 0 PortName=COM# -
332 |
333 | After installing the Ports class port you can use the list command to get
334 | the real port name, for example:
335 |
336 | command> list
337 | CNCA0 PortName=COM#,RealPortName=COM3
338 | CNCB0 PortName=-
339 |
340 | Q. Is it possible to configure the com0com to randomly corrupt the data? It
341 | would be nice to have this feature so that we can test our application
342 | robustness.
343 | A. Yes, it's possible by setting EmuNoise parameter:
344 |
345 | 1. Launch the Setup Command Prompt shortcut.
346 | 2. Enter the change command, for example:
347 |
348 | command> change CNCA0 EmuNoise=0.00001,EmuBR=yes,EmuOverrun=yes
349 | command> change CNCB0 EmuNoise=0.00001,EmuBR=yes,EmuOverrun=yes
350 |
351 | Now each character frame (including idle frames) will be corrupted with
352 | probability 0.00001.
353 |
354 | Q. What is the maximum number of port pairs that can be defined?
355 | A. It depends from your system. The com0com itself has internal limit
356 | 1000000 port pairs.
357 |
358 | Q. In my application, users could be installing up to 250 com port pairs.
359 | Initially, the installation is fairly quick, but each additional com port
360 | generally takes longer to install than the previous one. It quickly
361 | becomes unacceptable for a user to be expected to wait for the installation.
362 | A. It's because the installing of each next port pair requires to update driver
363 | for all installed pairs. You can speed up installing of multiple com port
364 | pairs by using install commands with --no-update option and then use
365 | install command w/o --no-update option, for example:
366 |
367 | command> --no-update install - -
368 | command> --no-update install - -
369 | ...
370 | command> --no-update install - -
371 | command> install
372 |
373 | The example of the batch program:
374 |
375 | cd /D "%ProgramFiles%\com0com"
376 | FOR /L %%i IN (0,1,249) DO setupc --no-update install - -
377 | setupc install
378 |
379 | Q. I am using the 64-bit version of com0com and I am having trouble. I'd like
380 | to debug this, but I can not find any free serial port monitor software,
381 | like portmon that works with a 64-bit OS. Does anyone know of any?
382 | A. You can try to use internal com0com's tracing for debuging:
383 |
384 | - get trace.reg file from com0com's source;
385 | - import trace.reg to the Registry;
386 | - reload driver (or reboot system);
387 | - do your tests and watch results in C:\com0com.log file.
388 |
389 | To disable tracing reinstall com0com or import trace_disable.reg to the
390 | Registry and reload driver.
391 |
--------------------------------------------------------------------------------
/bin/Debug/com0com_x86/cncport.inf:
--------------------------------------------------------------------------------
1 | ;******************************************************************************
2 | ;
3 | ; cncport.inf
4 | ;
5 | ; Installation file for the Null-modem emulator driver.
6 | ;
7 | ; Copyright (c) 2010-2012 Vyacheslav Frolov
8 | ;
9 | ;******************************************************************************
10 |
11 | [Version]
12 | Signature = "$Windows NT$"
13 | Provider = %VF%
14 | Class = CNCPorts
15 | ClassGUID = {df799e12-3c56-421b-b298-b6d3642bc878}
16 | CatalogFile = com0com.cat
17 | ; MM/DD/YYYY
18 | DriverVer = 06/04/2012,3.0.0.0
19 | UninstallInfTag = {df799e12-3c56-421b-b298-b6d3642bc878}
20 |
21 | ;******************************************************************************
22 | ;
23 | ; Driver information
24 | ;
25 | ;******************************************************************************
26 |
27 | [Manufacturer]
28 | %VF% = com0com, NTx86, NTia64, NTamd64
29 |
30 | [ControlFlags]
31 | ExcludeFromSelect = com0com\cncport
32 |
33 | [com0com]
34 | %com0com.PortDesc% = com0com_inst_port, com0com\cncport
35 |
36 | [com0com.NTx86]
37 | %com0com.PortDesc% = com0com_inst_port, com0com\cncport
38 |
39 | [com0com.NTia64]
40 | %com0com.PortDesc% = com0com_inst_port, com0com\cncport
41 |
42 | [com0com.NTamd64]
43 | %com0com.PortDesc% = com0com_inst_port, com0com\cncport
44 |
45 | ;******************************************************************************
46 | ;
47 | ; Port install section
48 | ;
49 | ;******************************************************************************
50 |
51 | [com0com_inst_port]
52 | AddReg = com0com_AddReg
53 | ;Include = msports.inf
54 | ;Needs = SerialEnumerator.NT
55 |
56 | [com0com_inst_port.Services]
57 | AddService = com0com, %SPSVCINST_ASSOCSERVICE%, com0com_Service_Inst, com0com_EventLog_Inst
58 | ;Include = msports.inf
59 | ;Needs = SerialEnumerator.NT.Services
60 |
61 | [com0com_inst_port.HW]
62 | AddReg = com0com_HW_AddReg
63 |
64 | [com0com_AddReg]
65 |
66 | [com0com_HW_AddReg]
67 | ;HKR,,"UpperFilters",0x00010000,"serenum"
68 |
69 | ;******************************************************************************
70 | ;
71 | ; Common section
72 | ;
73 | ;******************************************************************************
74 |
75 | [com0com_Service_Inst]
76 | DisplayName = %com0com.SrvDesc%
77 | ServiceType = %SERVICE_KERNEL_DRIVER%
78 | StartType = %SERVICE_DEMAND_START%
79 | ErrorControl = %SERVICE_ERROR_NORMAL%
80 | ServiceBinary = %12%\com0com.sys
81 |
82 | [com0com_EventLog_Inst]
83 | AddReg = com0com_EventLog_AddReg
84 |
85 | [com0com_EventLog_AddReg]
86 | HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\com0com.sys"
87 | HKR,,TypesSupported,%REG_DWORD%,7
88 |
89 | ;******************************************************************************
90 | ;
91 | ; Strings
92 | ;
93 | ;******************************************************************************
94 |
95 | [Strings]
96 |
97 | SPSVCINST_ASSOCSERVICE = 0x00000002
98 |
99 | REG_EXPAND_SZ = 0x00020000
100 | REG_DWORD = 0x00010001
101 |
102 | SERVICE_KERNEL_DRIVER = 1
103 | SERVICE_DEMAND_START = 3
104 | SERVICE_ERROR_NORMAL = 1
105 |
106 | VF = "Vyacheslav Frolov"
107 | com0com.PortDesc = "com0com - serial port emulator"
108 | com0com.SrvDesc = "com0com - emulates the serial ports interconnected via a null-modem cable"
109 |
110 | ;******************************************************************************
111 |
--------------------------------------------------------------------------------
/bin/Debug/com0com_x86/com0com.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allweshare/TCP2COM/3ec58dd62900ec832f8b7b73df621ce2ec52c44c/bin/Debug/com0com_x86/com0com.cat
--------------------------------------------------------------------------------
/bin/Debug/com0com_x86/com0com.inf:
--------------------------------------------------------------------------------
1 | ;******************************************************************************
2 | ;
3 | ; com0com.inf
4 | ;
5 | ; Installation file for the Null-modem emulator driver.
6 | ;
7 | ; Copyright (c) 2004-2012 Vyacheslav Frolov
8 | ;
9 | ;******************************************************************************
10 |
11 | [Version]
12 | Signature = "$Windows NT$"
13 | Provider = %VF%
14 | Class = CNCPorts
15 | ClassGUID = {df799e12-3c56-421b-b298-b6d3642bc878}
16 | CatalogFile = com0com.cat
17 | ; MM/DD/YYYY
18 | DriverVer = 06/04/2012,3.0.0.0
19 | UninstallInfTag = {df799e12-3c56-421b-b298-b6d3642bc878}
20 |
21 | ;******************************************************************************
22 | ;
23 | ; Class section
24 | ;
25 | ;******************************************************************************
26 |
27 | [ClassInstall32]
28 | AddReg = com0com_ClassReg
29 |
30 | [com0com_ClassReg]
31 | HKR,,,0,%ClassName%
32 | HKR,,Icon,,-23
33 |
34 | ;******************************************************************************
35 | ;
36 | ; Source and Destination information
37 | ;
38 | ;******************************************************************************
39 |
40 | [SourceDisksNames]
41 | 1 = %DiskId1%,,,""
42 |
43 | [SourceDisksFiles]
44 | com0com.sys = 1,,
45 |
46 | [DestinationDirs]
47 | com0com_CopyDrivers = 12
48 |
49 | [com0com_CopyDrivers]
50 | com0com.sys
51 |
52 | ;******************************************************************************
53 | ;
54 | ; Driver information
55 | ;
56 | ;******************************************************************************
57 |
58 | [Manufacturer]
59 | %VF% = com0com, NTx86, NTia64, NTamd64
60 |
61 | [com0com]
62 | %com0com.BusDesc% = com0com_inst, root\com0com
63 |
64 | [com0com.NTx86]
65 | %com0com.BusDesc% = com0com_inst, root\com0com
66 |
67 | [com0com.NTia64]
68 | %com0com.BusDesc% = com0com_inst, root\com0com
69 |
70 | [com0com.NTamd64]
71 | %com0com.BusDesc% = com0com_inst, root\com0com
72 |
73 | ;******************************************************************************
74 | ;
75 | ; Bus install section
76 | ;
77 | ;******************************************************************************
78 |
79 | [com0com_inst]
80 | AddReg = com0com_AddReg
81 | CopyFiles = com0com_CopyDrivers
82 | CopyINF = cncport.inf
83 | ;CopyINF = comport.inf
84 |
85 | [com0com_inst.Services]
86 | AddService = com0com, %SPSVCINST_ASSOCSERVICE%, com0com_Service_Inst, com0com_EventLog_Inst
87 |
88 | [com0com_AddReg]
89 |
90 | ;******************************************************************************
91 | ;
92 | ; Common section
93 | ;
94 | ;******************************************************************************
95 |
96 | [com0com_Service_Inst]
97 | DisplayName = %com0com.SrvDesc%
98 | ServiceType = %SERVICE_KERNEL_DRIVER%
99 | StartType = %SERVICE_DEMAND_START%
100 | ErrorControl = %SERVICE_ERROR_NORMAL%
101 | ServiceBinary = %12%\com0com.sys
102 |
103 | [com0com_EventLog_Inst]
104 | AddReg = com0com_EventLog_AddReg
105 |
106 | [com0com_EventLog_AddReg]
107 | HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\com0com.sys"
108 | HKR,,TypesSupported,%REG_DWORD%,7
109 |
110 | ;******************************************************************************
111 | ;
112 | ; Strings
113 | ;
114 | ;******************************************************************************
115 |
116 | [Strings]
117 |
118 | SPSVCINST_ASSOCSERVICE = 0x00000002
119 |
120 | REG_EXPAND_SZ = 0x00020000
121 | REG_DWORD = 0x00010001
122 |
123 | SERVICE_KERNEL_DRIVER = 1
124 | SERVICE_DEMAND_START = 3
125 | SERVICE_ERROR_NORMAL = 1
126 |
127 | DiskId1 = "Installation Disk #1 (com0com - Null-modem emulator)"
128 | VF = "Vyacheslav Frolov"
129 | com0com.BusDesc = "com0com - bus for serial port pair emulator"
130 | com0com.SrvDesc = "com0com - emulates the serial ports interconnected via a null-modem cable"
131 | ClassName = "com0com - serial port emulators"
132 |
133 | ;******************************************************************************
134 |
--------------------------------------------------------------------------------
/bin/Debug/com0com_x86/com0com.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allweshare/TCP2COM/3ec58dd62900ec832f8b7b73df621ce2ec52c44c/bin/Debug/com0com_x86/com0com.sys
--------------------------------------------------------------------------------
/bin/Debug/com0com_x86/comport.inf:
--------------------------------------------------------------------------------
1 | ;******************************************************************************
2 | ;
3 | ; comport.inf
4 | ;
5 | ; Installation file for the Null-modem emulator driver.
6 | ;
7 | ; Copyright (c) 2010-2012 Vyacheslav Frolov
8 | ;
9 | ;******************************************************************************
10 |
11 | [Version]
12 | Signature = "$Windows NT$"
13 | Provider = %VF%
14 | Class = Ports
15 | ClassGUID = {4D36E978-E325-11CE-BFC1-08002BE10318}
16 | CatalogFile = com0com.cat
17 | ; MM/DD/YYYY
18 | DriverVer = 06/04/2012,3.0.0.0
19 | UninstallInfTag = {df799e12-3c56-421b-b298-b6d3642bc878}
20 |
21 | ;******************************************************************************
22 | ;
23 | ; Driver information
24 | ;
25 | ;******************************************************************************
26 |
27 | [Manufacturer]
28 | %VF% = com0com, NTx86, NTia64, NTamd64
29 |
30 | [ControlFlags]
31 | ExcludeFromSelect = com0com\comport
32 |
33 | [com0com]
34 | %com0com.PortDesc% = com0com_inst_port, com0com\comport
35 |
36 | [com0com.NTx86]
37 | %com0com.PortDesc% = com0com_inst_port, com0com\comport
38 |
39 | [com0com.NTia64]
40 | %com0com.PortDesc% = com0com_inst_port, com0com\comport
41 |
42 | [com0com.NTamd64]
43 | %com0com.PortDesc% = com0com_inst_port, com0com\comport
44 |
45 | ;******************************************************************************
46 | ;
47 | ; Port install section
48 | ;
49 | ;******************************************************************************
50 |
51 | [com0com_inst_port]
52 | AddReg = com0com_AddReg
53 | Include = msports.inf
54 | Needs = SerialEnumerator.NT
55 |
56 | [com0com_inst_port.Services]
57 | AddService = com0com, %SPSVCINST_ASSOCSERVICE%, com0com_Service_Inst, com0com_EventLog_Inst
58 | Include = msports.inf
59 | Needs = SerialEnumerator.NT.Services
60 |
61 | [com0com_inst_port.HW]
62 | AddReg = com0com_HW_AddReg
63 |
64 | [com0com_AddReg]
65 | ;HKR,,PortSubClass,1,01
66 | ;HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
67 |
68 | [com0com_HW_AddReg]
69 | HKR,,"UpperFilters",0x00010000,"serenum"
70 |
71 | ;******************************************************************************
72 | ;
73 | ; Common section
74 | ;
75 | ;******************************************************************************
76 |
77 | [com0com_Service_Inst]
78 | DisplayName = %com0com.SrvDesc%
79 | ServiceType = %SERVICE_KERNEL_DRIVER%
80 | StartType = %SERVICE_DEMAND_START%
81 | ErrorControl = %SERVICE_ERROR_NORMAL%
82 | ServiceBinary = %12%\com0com.sys
83 |
84 | [com0com_EventLog_Inst]
85 | AddReg = com0com_EventLog_AddReg
86 |
87 | [com0com_EventLog_AddReg]
88 | HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\com0com.sys"
89 | HKR,,TypesSupported,%REG_DWORD%,7
90 |
91 | ;******************************************************************************
92 | ;
93 | ; Strings
94 | ;
95 | ;******************************************************************************
96 |
97 | [Strings]
98 |
99 | SPSVCINST_ASSOCSERVICE = 0x00000002
100 |
101 | REG_EXPAND_SZ = 0x00020000
102 | REG_DWORD = 0x00010001
103 |
104 | SERVICE_KERNEL_DRIVER = 1
105 | SERVICE_DEMAND_START = 3
106 | SERVICE_ERROR_NORMAL = 1
107 |
108 | VF = "Vyacheslav Frolov"
109 | com0com.PortDesc = "com0com - serial port emulator"
110 | com0com.SrvDesc = "com0com - emulates the serial ports interconnected via a null-modem cable"
111 |
112 | ;******************************************************************************
113 |
--------------------------------------------------------------------------------
/bin/Debug/config.ini:
--------------------------------------------------------------------------------
1 | [TCPServer]
2 | HOST=127.0.0.1
3 | PORT=8888
4 | COMP=COM3
5 | BAUD=19200
6 | DATB=8
7 | PARI=None
8 |
--------------------------------------------------------------------------------
/include/CommListenerBase.h:
--------------------------------------------------------------------------------
1 | #ifndef COMMLISTENERBASE_H
2 | #define COMMLISTENERBASE_H
3 |
4 | #include
5 |
6 | class CommListenerBase : public wxThread
7 | {
8 | public:
9 | virtual ~CommListenerBase(){}
10 | virtual wxThread::ExitCode Entry() = 0;
11 | virtual void SetBrock(bool setQuit) = 0;
12 |
13 | protected:
14 | CommListenerBase():wxThread(wxTHREAD_DETACHED){}
15 | private:
16 | CommListenerBase(CommListenerBase& listener);
17 | };
18 |
19 | #endif // COMMLISTENERBASE_H
20 |
--------------------------------------------------------------------------------
/include/CommServiceBase.h:
--------------------------------------------------------------------------------
1 | #ifndef COMMSERVICEBASE_H
2 | #define COMMSERVICEBASE_H
3 |
4 | #include "CommListenerBase.h"
5 | #include "FrameObserver.h"
6 | #include
7 | #include
8 |
9 | class CommServiceBase
10 | {
11 | public:
12 | virtual ~CommServiceBase();
13 | //打开通信链路
14 | virtual void open() = 0;
15 | //发送数据
16 | virtual void send(uint8_t * data,uint32_t size) = 0;
17 | //关闭通信链路
18 | virtual void close() = 0;
19 | //添加协议帧观察者
20 | void addObserver(FrameObserver* observer);
21 | //获取当前通信链路的监听线程
22 | CommListenerBase* getCommListener();
23 | //通知所有观察者
24 | void notifyObservers(FrameObserver::DataSource source,uint8_t * data,size_t len);
25 | //通信链路是否已经打开
26 | bool isOpen(void);
27 | protected:
28 | //标识通信服务是否还在运行
29 | bool isRun;
30 | CommServiceBase(); //该类不可实例化
31 |
32 | /**
33 | * 每种通信模式使用自己的方式接收数据
34 | **/
35 | CommListenerBase* listener;
36 | private:
37 | std::vector observerList;
38 | CommServiceBase(CommServiceBase& commService);
39 |
40 | };
41 |
42 | #endif // COMMSERVICEBASE_H
43 |
--------------------------------------------------------------------------------
/include/FactoryPreset.h:
--------------------------------------------------------------------------------
1 | #ifndef FACTORYPRESET_H
2 | #define FACTORYPRESET_H
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 |
9 | using namespace std;
10 |
11 | class FactoryPreset
12 | {
13 | public:
14 | static FactoryPreset& getPreset()
15 | {
16 | static FactoryPreset preset;
17 | return preset;
18 | }
19 | shared_ptr config; //改用智能指针,不需要手动 delete
20 | const wxFileName app_exe_path; //可执行程序的绝对路径
21 | const wxString app_root_dir; //应用程序根目录
22 | const wxString cfg_file_path; //配置文件存放路径
23 | wxString vcom_driver_path; //分别对应32位或64位的驱动
24 | void SaveConfig(); //修改完任意一项配置都需要保存
25 | protected:
26 |
27 | private:
28 | //禁用拷贝构造
29 | FactoryPreset();
30 | ~FactoryPreset();
31 | FactoryPreset(const FactoryPreset&);
32 | void operator=(FactoryPreset&);
33 | };
34 |
35 | #endif // FACTORYPRESET_H
36 |
--------------------------------------------------------------------------------
/include/FrameObserver.h:
--------------------------------------------------------------------------------
1 | #ifndef FRAMEOBSERVER_H
2 | #define FRAMEOBSERVER_H
3 |
4 | #include
5 |
6 | class FrameObserver
7 | {
8 | public:
9 | //FrameObserver();
10 | //virtual ~FrameObserver();
11 |
12 | /**
13 | * 定义数据的来源
14 | **/
15 | typedef enum {
16 | COMPORT, //串口
17 | NETWORK //网络
18 | } DataSource;
19 |
20 | //定义接收数据的事件
21 | virtual void onReciveData(DataSource source,uint8_t * data,size_t len) = 0;
22 |
23 | protected:
24 |
25 | private:
26 | };
27 |
28 | #endif // FRAMEOBSERVER_H
29 |
--------------------------------------------------------------------------------
/include/NetCommService.h:
--------------------------------------------------------------------------------
1 | #ifndef NETCOMMSERVICE_H
2 | #define NETCOMMSERVICE_H
3 |
4 | #include "CommServiceBase.h"
5 | #include
6 | #include
7 | #include
8 | #include
9 |
10 | class NetCommService : public CommServiceBase
11 | {
12 | public:
13 | static NetCommService& getService()
14 | {
15 | static NetCommService service;
16 | return service;
17 | }
18 | ~NetCommService();
19 |
20 | //打开通信链路
21 | void open();
22 | //发送数据
23 | void send(uint8_t * data,uint32_t len);
24 | //关闭通信链路
25 | void close();
26 | //统计客户端连接数
27 | wxAtomicInt clientCount;
28 | protected:
29 |
30 | private:
31 | const size_t RECV_BUFF_SIZE;
32 | uint8_t * recv_buff; //接收缓冲区
33 | const size_t SEND_BUFF_SIZE;
34 | uint8_t * send_buff; //发送缓冲区
35 |
36 | wxSocketServer* socketServer; //服务器端Socket
37 |
38 | //禁用拷贝构造
39 | NetCommService();
40 | NetCommService(const NetCommService&);
41 | void operator=(NetCommService&);
42 | };
43 |
44 | #endif // NETCOMMSERVICE_H
45 |
--------------------------------------------------------------------------------
/include/SerialCommService.h:
--------------------------------------------------------------------------------
1 | #ifndef SERIALCOMMSERVICE_H
2 | #define SERIALCOMMSERVICE_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | #include "CommServiceBase.h"
9 | #include
10 |
11 | class SerialCommService : public CommServiceBase
12 | {
13 | public:
14 | static SerialCommService& getService()
15 | {
16 | static SerialCommService service;
17 | return service;
18 | }
19 | ~SerialCommService();
20 | //打开通信链路
21 | void open();
22 | //发送数据
23 | void send(uint8_t * data,uint32_t len);
24 | //关闭通信链路
25 | void close();
26 | protected:
27 |
28 | private:
29 | HANDLE hComPort; //串口句柄
30 | const size_t RECV_BUFF_SIZE;
31 | uint8_t * recv_buff; //接收缓冲区
32 | const size_t SEND_BUFF_SIZE;
33 | uint8_t * send_buff; //发送缓冲区
34 |
35 | //禁用拷贝构造
36 | SerialCommService();
37 | SerialCommService(const SerialCommService&);
38 | void operator=(SerialCommService&);
39 | };
40 |
41 | #endif // SERIALCOMMSERVICE_H
42 |
--------------------------------------------------------------------------------
/include/SerialPortListener.h:
--------------------------------------------------------------------------------
1 | #ifndef SERIALPORTLISTENER_H
2 | #define SERIALPORTLISTENER_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | #include
9 | #include "CommListenerBase.h"
10 |
11 | class SerialPortListener : public CommListenerBase
12 | {
13 | public:
14 | SerialPortListener(HANDLE hCom,uint8_t * recv_buff,const size_t recv_len);
15 | virtual ~SerialPortListener();
16 | void SetBrock(bool setQuit);
17 | protected:
18 | wxThread::ExitCode Entry();
19 | private:
20 | HANDLE hComPort;
21 | uint8_t * RECV_BUFF;
22 | const size_t BUFF_SIZE;
23 | volatile bool isQuit;
24 | int readComPort(uint8_t * read_buff,unsigned long readLen);
25 | };
26 |
27 | #endif // SERIALPORTLISTENER_H
28 |
--------------------------------------------------------------------------------
/include/TCPServerListener.h:
--------------------------------------------------------------------------------
1 | #ifndef TCPSERVERLISTENER_H
2 | #define TCPSERVERLISTENER_H
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 |
10 | #include "CommListenerBase.h"
11 |
12 | class TCPServerListener : public CommListenerBase
13 | {
14 | public:
15 | TCPServerListener(wxSocketServer* socket,uint8_t * recv_buff,const size_t recv_len);
16 | virtual ~TCPServerListener();
17 | void SetBrock(bool setQuit);
18 | wxSocketBase* getClient();
19 | void writeData(uint8_t* data,size_t len);
20 | protected:
21 | wxThread::ExitCode Entry();
22 | private:
23 | wxSocketServer* serverSocket;
24 | uint8_t * RECV_BUFF;
25 | const size_t BUFF_SIZE;
26 | volatile bool isQuit;
27 | wxSocketInputStream* inputStream;
28 | wxSocketOutputStream* outputStream;
29 | wxSocketBase* socket;
30 |
31 | int readNetPort(uint8_t * read_buff,unsigned long readLen);
32 | };
33 |
34 | #endif // TCPSERVERLISTENER_H
35 |
--------------------------------------------------------------------------------
/include/VirtualCom.h:
--------------------------------------------------------------------------------
1 | #ifndef VIRTUALCOM_H
2 | #define VIRTUALCOM_H
3 |
4 | #include
5 | #include
6 |
7 | class VirtualCom
8 | {
9 | public:
10 | static VirtualCom& getManager()
11 | {
12 | static VirtualCom manager;
13 | return manager;
14 | }
15 |
16 | /**
17 | * 定义虚拟串口对
18 | * 每一对虚拟串口在创建时会自动生成序号
19 | **/
20 | typedef struct {
21 | uint8_t index;
22 | wxString comA;
23 | wxString comB;
24 | } CommPairType;
25 |
26 | //以阻塞方式执行一个命令并返回其执行结果
27 | uint8_t execReadBack(wxString cmd,char* read_buff,size_t buff_len);
28 |
29 | //安装虚拟串口驱动
30 | uint8_t installDriver();
31 |
32 | //加载虚拟串口列表
33 | void loadCommPairs(CommPairType* commPairs,size_t* numOfPairs);
34 |
35 | //创建一对新的虚拟串口
36 | void createComPair(wxString comportA,wxString comportB);
37 |
38 | //删除指定的一对虚拟串口
39 | void removeComPair(uint8_t pairIndex);
40 |
41 | protected:
42 |
43 | private:
44 | //禁用拷贝构造
45 | VirtualCom();
46 | ~VirtualCom();
47 | VirtualCom(const VirtualCom&);
48 | void operator=(VirtualCom&);
49 | };
50 |
51 | #endif // VIRTUALCOM_H
52 |
--------------------------------------------------------------------------------
/obj/Debug/resource.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/allweshare/TCP2COM/3ec58dd62900ec832f8b7b73df621ce2ec52c44c/obj/Debug/resource.res
--------------------------------------------------------------------------------
/resource.rc:
--------------------------------------------------------------------------------
1 | aaaa ICON "wx/msw/std.ico"
2 |
3 | #include "wx/msw/wx.rc"
4 |
5 |
--------------------------------------------------------------------------------
/src/CommServiceBase.cpp:
--------------------------------------------------------------------------------
1 | #include "CommServiceBase.h"
2 |
3 | using namespace std;
4 |
5 | CommServiceBase::CommServiceBase()
6 | {
7 | //ctor
8 | }
9 |
10 | void CommServiceBase::addObserver(FrameObserver* observer)
11 | {
12 | for(vector::iterator itert = observerList.begin();itert != observerList.end();)
13 | {
14 | if(observer == *itert)
15 | {
16 | itert = observerList.erase(itert);
17 | }else{
18 | itert ++;
19 | }
20 | }
21 | observerList.push_back(observer);
22 | }
23 |
24 | /**
25 | * 通知所有观察者
26 | **/
27 | void CommServiceBase::notifyObservers(FrameObserver::DataSource source,uint8_t * data,size_t len)
28 | {
29 | for(vector::iterator itert = observerList.begin();itert != observerList.end(); itert ++)
30 | {
31 | (*itert)->onReciveData(source,data,len);
32 | }
33 | }
34 |
35 | CommListenerBase* CommServiceBase::getCommListener()
36 | {
37 | return listener;
38 | }
39 |
40 | /**
41 | * 通信链路是否已经打开
42 | **/
43 | bool CommServiceBase::isOpen(void)
44 | {
45 | return isRun;
46 | }
47 |
48 | CommServiceBase::~CommServiceBase()
49 | {
50 | //dtor
51 | }
52 |
--------------------------------------------------------------------------------
/src/FactoryPreset.cpp:
--------------------------------------------------------------------------------
1 | #include "FactoryPreset.h"
2 |
3 | #include