├── README.md ├── Resources ├── download.jpg └── shot.png ├── Serialgraph ├── Makefile ├── Makefile.Debug ├── Makefile.Release ├── Resources │ └── logo.PNG ├── SerialOscillograph_by_QT.pro.user ├── SerialOscillograph_by_QT.pro.user.5e93e96 ├── SerialOscillograph_by_QT.pro.user.7abb0d6 ├── Serialgraph.pro ├── Serialgraph.pro.user ├── dataprocess.cpp ├── dataprocess.h ├── logo.ico ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h ├── mainwindow.ui ├── pyuic5.exe ├── release │ ├── Qt5Charts.dll │ ├── Qt5Core.dll │ ├── Qt5Gui.dll │ ├── Qt5Network.dll │ ├── Qt5OpenGL.dll │ ├── Qt5SerialPort.dll │ ├── Qt5Sql.dll │ ├── Qt5WebSockets.dll │ ├── Qt5Widgets.dll │ ├── SerialOscillograph_by_QT.exe │ ├── bearer │ │ └── qgenericbearer.dll │ ├── iconengines │ │ └── qsvgicon.dll │ ├── imageformats │ │ ├── qgif.dll │ │ ├── qicns.dll │ │ ├── qico.dll │ │ ├── qjpeg.dll │ │ ├── qsvg.dll │ │ ├── qtga.dll │ │ ├── qtiff.dll │ │ ├── qwbmp.dll │ │ └── qwebp.dll │ ├── libgcc_s_seh-1.dll │ ├── libstdc++-6.dll │ ├── libwinpthread-1.dll │ ├── opengl32sw.dll │ ├── platforms │ │ └── qwindows.dll │ ├── styles │ │ └── qwindowsvistastyle.dll │ └── translations │ │ ├── qt_ar.qm │ │ ├── qt_bg.qm │ │ ├── qt_ca.qm │ │ ├── qt_cs.qm │ │ ├── qt_da.qm │ │ ├── qt_de.qm │ │ ├── qt_en.qm │ │ ├── qt_es.qm │ │ ├── qt_fi.qm │ │ ├── qt_fr.qm │ │ ├── qt_gd.qm │ │ ├── qt_he.qm │ │ ├── qt_hu.qm │ │ ├── qt_it.qm │ │ ├── qt_ja.qm │ │ ├── qt_ko.qm │ │ ├── qt_lv.qm │ │ ├── qt_pl.qm │ │ ├── qt_ru.qm │ │ ├── qt_sk.qm │ │ ├── qt_uk.qm │ │ └── qt_zh_TW.qm ├── resource.qrc ├── serial.py └── ui_mainwindow.h └── 程序.png /README.md: -------------------------------------------------------------------------------- 1 | # serial_net_graph 2 | 功能: 3 | 4 | 1.串口通信,可进行串口数据的波形显示; 5 | 6 | 2.支持tcp、udp通信,同样能进行数据的波形显示; 7 | 8 | 说明:数据协议的格式; 9 | (第1,2字节)AAAA帧头; 10 | (第3字节)f1帧标识; 11 | (第4字节)数据部分字节数; 12 | (第5-n字节)用户数据; 13 | (第n+1字节)校验和,校验和计算范围(第一字节 至 第n字节); 14 | 例如: 15 | AA AA F1 14 00 4E 1F F0 00 4E 20 BE 00 00 00 00 00 00 00 60 00 00 00 E3 25 16 | 17 | ![image](程序.png) 18 | -------------------------------------------------------------------------------- /Resources/download.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Resources/download.jpg -------------------------------------------------------------------------------- /Resources/shot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Resources/shot.png -------------------------------------------------------------------------------- /Serialgraph/Makefile: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | # Makefile for building: SerialOscillograph_by_QT 3 | # Generated by qmake (3.1) (Qt 5.14.2) 4 | # Project: SerialOscillograph_by_QT.pro 5 | # Template: app 6 | # Command: C:/Qt/Qt5.14.2/5.14.2/mingw73_64/bin/qmake.exe -o Makefile SerialOscillograph_by_QT.pro -spec win32-g++ CONFIG+=qtquickcompiler 7 | ############################################################################# 8 | 9 | MAKEFILE = Makefile 10 | 11 | EQ = = 12 | 13 | first: release 14 | install: release-install 15 | uninstall: release-uninstall 16 | QMAKE = C:/Qt/Qt5.14.2/5.14.2/mingw73_64/bin/qmake.exe 17 | DEL_FILE = rm -f 18 | CHK_DIR_EXISTS= test -d 19 | MKDIR = mkdir -p 20 | COPY = cp -f 21 | COPY_FILE = cp -f 22 | COPY_DIR = cp -f -R 23 | INSTALL_FILE = cp -f 24 | INSTALL_PROGRAM = cp -f 25 | INSTALL_DIR = cp -f -R 26 | QINSTALL = C:/Qt/Qt5.14.2/5.14.2/mingw73_64/bin/qmake.exe -install qinstall 27 | QINSTALL_PROGRAM = C:/Qt/Qt5.14.2/5.14.2/mingw73_64/bin/qmake.exe -install qinstall -exe 28 | DEL_FILE = rm -f 29 | SYMLINK = $(QMAKE) -install ln -f -s 30 | DEL_DIR = rmdir 31 | MOVE = mv -f 32 | IDC = idc 33 | IDL = midl 34 | ZIP = 35 | DEF_FILE = 36 | RES_FILE = 37 | SED = sed 38 | MOVE = mv -f 39 | SUBTARGETS = \ 40 | release \ 41 | debug 42 | 43 | 44 | release: FORCE 45 | $(MAKE) -f $(MAKEFILE).Release 46 | release-make_first: FORCE 47 | $(MAKE) -f $(MAKEFILE).Release 48 | release-all: FORCE 49 | $(MAKE) -f $(MAKEFILE).Release all 50 | release-clean: FORCE 51 | $(MAKE) -f $(MAKEFILE).Release clean 52 | release-distclean: FORCE 53 | $(MAKE) -f $(MAKEFILE).Release distclean 54 | release-install: FORCE 55 | $(MAKE) -f $(MAKEFILE).Release install 56 | release-uninstall: FORCE 57 | $(MAKE) -f $(MAKEFILE).Release uninstall 58 | debug: FORCE 59 | $(MAKE) -f $(MAKEFILE).Debug 60 | debug-make_first: FORCE 61 | $(MAKE) -f $(MAKEFILE).Debug 62 | debug-all: FORCE 63 | $(MAKE) -f $(MAKEFILE).Debug all 64 | debug-clean: FORCE 65 | $(MAKE) -f $(MAKEFILE).Debug clean 66 | debug-distclean: FORCE 67 | $(MAKE) -f $(MAKEFILE).Debug distclean 68 | debug-install: FORCE 69 | $(MAKE) -f $(MAKEFILE).Debug install 70 | debug-uninstall: FORCE 71 | $(MAKE) -f $(MAKEFILE).Debug uninstall 72 | 73 | Makefile: SerialOscillograph_by_QT.pro C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/win32-g++/qmake.conf C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/spec_pre.prf \ 74 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/qdevice.pri \ 75 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/device_config.prf \ 76 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/sanitize.conf \ 77 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/gcc-base.conf \ 78 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/g++-base.conf \ 79 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/angle.conf \ 80 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/windows_vulkan_sdk.prf \ 81 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/windows-vulkan.conf \ 82 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/g++-win32.conf \ 83 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/windows-desktop.conf \ 84 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/qconfig.pri \ 85 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation.pri \ 86 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation_private.pri \ 87 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore.pri \ 88 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore_private.pri \ 89 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras.pri \ 90 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras_private.pri \ 91 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput.pri \ 92 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput_private.pri \ 93 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic.pri \ 94 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic_private.pri \ 95 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick.pri \ 96 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick_private.pri \ 97 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation.pri \ 98 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri \ 99 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras.pri \ 100 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras_private.pri \ 101 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput.pri \ 102 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput_private.pri \ 103 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender.pri \ 104 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender_private.pri \ 105 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d.pri \ 106 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \ 107 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender.pri \ 108 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender_private.pri \ 109 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_accessibility_support_private.pri \ 110 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase.pri \ 111 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase_private.pri \ 112 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer.pri \ 113 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer_private.pri \ 114 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver.pri \ 115 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver_private.pri \ 116 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth.pri \ 117 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth_private.pri \ 118 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bodymovin_private.pri \ 119 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bootstrap_private.pri \ 120 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_charts.pri \ 121 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_charts_private.pri \ 122 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent.pri \ 123 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent_private.pri \ 124 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core.pri \ 125 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core_private.pri \ 126 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_datavisualization.pri \ 127 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_datavisualization_private.pri \ 128 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus.pri \ 129 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus_private.pri \ 130 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer.pri \ 131 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer_private.pri \ 132 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designercomponents_private.pri \ 133 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \ 134 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_edid_support_private.pri \ 135 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_egl_support_private.pri \ 136 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \ 137 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fb_support_private.pri \ 138 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \ 139 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad.pri \ 140 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad_private.pri \ 141 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui.pri \ 142 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui_private.pri \ 143 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help.pri \ 144 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help_private.pri \ 145 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location.pri \ 146 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location_private.pri \ 147 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia.pri \ 148 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia_private.pri \ 149 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets.pri \ 150 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \ 151 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network.pri \ 152 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network_private.pri \ 153 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_networkauth.pri \ 154 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_networkauth_private.pri \ 155 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc.pri \ 156 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc_private.pri \ 157 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl.pri \ 158 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl_private.pri \ 159 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions.pri \ 160 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions_private.pri \ 161 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \ 162 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \ 163 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning.pri \ 164 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning_private.pri \ 165 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick.pri \ 166 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick_private.pri \ 167 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport.pri \ 168 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport_private.pri \ 169 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_purchasing.pri \ 170 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_purchasing_private.pri \ 171 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml.pri \ 172 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml_private.pri \ 173 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldebug_private.pri \ 174 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldevtools_private.pri \ 175 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels.pri \ 176 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels_private.pri \ 177 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest.pri \ 178 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest_private.pri \ 179 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript.pri \ 180 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri \ 181 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \ 182 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick.pri \ 183 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3d.pri \ 184 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3d_private.pri \ 185 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dassetimport.pri \ 186 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri \ 187 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3drender.pri \ 188 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3drender_private.pri \ 189 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3druntimerender.pri \ 190 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri \ 191 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dutils.pri \ 192 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dutils_private.pri \ 193 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick_private.pri \ 194 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2.pri \ 195 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \ 196 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickparticles_private.pri \ 197 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickshapes_private.pri \ 198 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2.pri \ 199 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \ 200 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets.pri \ 201 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \ 202 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects.pri \ 203 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects_private.pri \ 204 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser.pri \ 205 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser_private.pri \ 206 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_script.pri \ 207 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_script_private.pri \ 208 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scripttools.pri \ 209 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scripttools_private.pri \ 210 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml.pri \ 211 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml_private.pri \ 212 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors.pri \ 213 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors_private.pri \ 214 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus.pri \ 215 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus_private.pri \ 216 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport.pri \ 217 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport_private.pri \ 218 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql.pri \ 219 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql_private.pri \ 220 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg.pri \ 221 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg_private.pri \ 222 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib.pri \ 223 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib_private.pri \ 224 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech.pri \ 225 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech_private.pri \ 226 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_theme_support_private.pri \ 227 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uiplugin.pri \ 228 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools.pri \ 229 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools_private.pri \ 230 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_virtualkeyboard.pri \ 231 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_virtualkeyboard_private.pri \ 232 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_vulkan_support_private.pri \ 233 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel.pri \ 234 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel_private.pri \ 235 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets.pri \ 236 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets_private.pri \ 237 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets.pri \ 238 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets_private.pri \ 239 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_windowsuiautomation_support_private.pri \ 240 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras.pri \ 241 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras_private.pri \ 242 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml.pri \ 243 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml_private.pri \ 244 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns.pri \ 245 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri \ 246 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_zlib_private.pri \ 247 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt_functions.prf \ 248 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt_config.prf \ 249 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/win32-g++/qmake.conf \ 250 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/spec_post.prf \ 251 | ../.qmake.stash \ 252 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exclusive_builds.prf \ 253 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/toolchain.prf \ 254 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/default_pre.prf \ 255 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/default_pre.prf \ 256 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resolve_config.prf \ 257 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exclusive_builds_post.prf \ 258 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/default_post.prf \ 259 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resources_functions.prf \ 260 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qtquickcompiler.prf \ 261 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/precompile_header.prf \ 262 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/warn_on.prf \ 263 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt.prf \ 264 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resources.prf \ 265 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/moc.prf \ 266 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/opengl.prf \ 267 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/uic.prf \ 268 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qmake_use.prf \ 269 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/file_copies.prf \ 270 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/windows.prf \ 271 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/testcase_targets.prf \ 272 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exceptions.prf \ 273 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/yacc.prf \ 274 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/lex.prf \ 275 | SerialOscillograph_by_QT.pro \ 276 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Charts.prl \ 277 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Widgets.prl \ 278 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Gui.prl \ 279 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5SerialPort.prl \ 280 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Network.prl \ 281 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Core.prl \ 282 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/qtmain.prl \ 283 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/build_pass.prf \ 284 | resource.qrc 285 | $(QMAKE) -o Makefile SerialOscillograph_by_QT.pro -spec win32-g++ CONFIG+=qtquickcompiler 286 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/spec_pre.prf: 287 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/qdevice.pri: 288 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/device_config.prf: 289 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/sanitize.conf: 290 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/gcc-base.conf: 291 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/g++-base.conf: 292 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/angle.conf: 293 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/windows_vulkan_sdk.prf: 294 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/windows-vulkan.conf: 295 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/g++-win32.conf: 296 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/common/windows-desktop.conf: 297 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/qconfig.pri: 298 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation.pri: 299 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3danimation_private.pri: 300 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore.pri: 301 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dcore_private.pri: 302 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras.pri: 303 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dextras_private.pri: 304 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput.pri: 305 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dinput_private.pri: 306 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic.pri: 307 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dlogic_private.pri: 308 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick.pri: 309 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquick_private.pri: 310 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation.pri: 311 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri: 312 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras.pri: 313 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickextras_private.pri: 314 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput.pri: 315 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickinput_private.pri: 316 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender.pri: 317 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickrender_private.pri: 318 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d.pri: 319 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri: 320 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender.pri: 321 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_3drender_private.pri: 322 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_accessibility_support_private.pri: 323 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase.pri: 324 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axbase_private.pri: 325 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer.pri: 326 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axcontainer_private.pri: 327 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver.pri: 328 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_axserver_private.pri: 329 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth.pri: 330 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bluetooth_private.pri: 331 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bodymovin_private.pri: 332 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_bootstrap_private.pri: 333 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_charts.pri: 334 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_charts_private.pri: 335 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent.pri: 336 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_concurrent_private.pri: 337 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core.pri: 338 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_core_private.pri: 339 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_datavisualization.pri: 340 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_datavisualization_private.pri: 341 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus.pri: 342 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_dbus_private.pri: 343 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer.pri: 344 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designer_private.pri: 345 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_designercomponents_private.pri: 346 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri: 347 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_edid_support_private.pri: 348 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_egl_support_private.pri: 349 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri: 350 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fb_support_private.pri: 351 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri: 352 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad.pri: 353 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gamepad_private.pri: 354 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui.pri: 355 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_gui_private.pri: 356 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help.pri: 357 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_help_private.pri: 358 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location.pri: 359 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_location_private.pri: 360 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia.pri: 361 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimedia_private.pri: 362 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets.pri: 363 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri: 364 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network.pri: 365 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_network_private.pri: 366 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_networkauth.pri: 367 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_networkauth_private.pri: 368 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc.pri: 369 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_nfc_private.pri: 370 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl.pri: 371 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_opengl_private.pri: 372 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions.pri: 373 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_openglextensions_private.pri: 374 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_packetprotocol_private.pri: 375 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri: 376 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning.pri: 377 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioning_private.pri: 378 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick.pri: 379 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_positioningquick_private.pri: 380 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport.pri: 381 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_printsupport_private.pri: 382 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_purchasing.pri: 383 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_purchasing_private.pri: 384 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml.pri: 385 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qml_private.pri: 386 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldebug_private.pri: 387 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmldevtools_private.pri: 388 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels.pri: 389 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlmodels_private.pri: 390 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest.pri: 391 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmltest_private.pri: 392 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript.pri: 393 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qmlworkerscript_private.pri: 394 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri: 395 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick.pri: 396 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3d.pri: 397 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3d_private.pri: 398 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dassetimport.pri: 399 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dassetimport_private.pri: 400 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3drender.pri: 401 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3drender_private.pri: 402 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3druntimerender.pri: 403 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3druntimerender_private.pri: 404 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dutils.pri: 405 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick3dutils_private.pri: 406 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quick_private.pri: 407 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2.pri: 408 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri: 409 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickparticles_private.pri: 410 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickshapes_private.pri: 411 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2.pri: 412 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri: 413 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets.pri: 414 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_quickwidgets_private.pri: 415 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects.pri: 416 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_remoteobjects_private.pri: 417 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser.pri: 418 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_repparser_private.pri: 419 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_script.pri: 420 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_script_private.pri: 421 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scripttools.pri: 422 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scripttools_private.pri: 423 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml.pri: 424 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_scxml_private.pri: 425 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors.pri: 426 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sensors_private.pri: 427 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus.pri: 428 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialbus_private.pri: 429 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport.pri: 430 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_serialport_private.pri: 431 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql.pri: 432 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_sql_private.pri: 433 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg.pri: 434 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_svg_private.pri: 435 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib.pri: 436 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_testlib_private.pri: 437 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech.pri: 438 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_texttospeech_private.pri: 439 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_theme_support_private.pri: 440 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uiplugin.pri: 441 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools.pri: 442 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_uitools_private.pri: 443 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_virtualkeyboard.pri: 444 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_virtualkeyboard_private.pri: 445 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_vulkan_support_private.pri: 446 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel.pri: 447 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_webchannel_private.pri: 448 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets.pri: 449 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_websockets_private.pri: 450 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets.pri: 451 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_widgets_private.pri: 452 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_windowsuiautomation_support_private.pri: 453 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras.pri: 454 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_winextras_private.pri: 455 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml.pri: 456 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xml_private.pri: 457 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns.pri: 458 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri: 459 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/modules/qt_lib_zlib_private.pri: 460 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt_functions.prf: 461 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt_config.prf: 462 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/win32-g++/qmake.conf: 463 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/spec_post.prf: 464 | ../.qmake.stash: 465 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exclusive_builds.prf: 466 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/toolchain.prf: 467 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/default_pre.prf: 468 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/default_pre.prf: 469 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resolve_config.prf: 470 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exclusive_builds_post.prf: 471 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/default_post.prf: 472 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resources_functions.prf: 473 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qtquickcompiler.prf: 474 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/precompile_header.prf: 475 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/warn_on.prf: 476 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qt.prf: 477 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/resources.prf: 478 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/moc.prf: 479 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/opengl.prf: 480 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/uic.prf: 481 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/qmake_use.prf: 482 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/file_copies.prf: 483 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/win32/windows.prf: 484 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/testcase_targets.prf: 485 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/exceptions.prf: 486 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/yacc.prf: 487 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/lex.prf: 488 | SerialOscillograph_by_QT.pro: 489 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Charts.prl: 490 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Widgets.prl: 491 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Gui.prl: 492 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5SerialPort.prl: 493 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Network.prl: 494 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/Qt5Core.prl: 495 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/qtmain.prl: 496 | C:/Qt/Qt5.14.2/5.14.2/mingw73_64/mkspecs/features/build_pass.prf: 497 | resource.qrc: 498 | qmake: FORCE 499 | @$(QMAKE) -o Makefile SerialOscillograph_by_QT.pro -spec win32-g++ CONFIG+=qtquickcompiler 500 | 501 | qmake_all: FORCE 502 | 503 | make_first: release-make_first debug-make_first FORCE 504 | all: release-all debug-all FORCE 505 | clean: release-clean debug-clean FORCE 506 | distclean: release-distclean debug-distclean FORCE 507 | -$(DEL_FILE) Makefile 508 | 509 | release-mocclean: 510 | $(MAKE) -f $(MAKEFILE).Release mocclean 511 | debug-mocclean: 512 | $(MAKE) -f $(MAKEFILE).Debug mocclean 513 | mocclean: release-mocclean debug-mocclean 514 | 515 | release-mocables: 516 | $(MAKE) -f $(MAKEFILE).Release mocables 517 | debug-mocables: 518 | $(MAKE) -f $(MAKEFILE).Debug mocables 519 | mocables: release-mocables debug-mocables 520 | 521 | check: first 522 | 523 | benchmark: first 524 | FORCE: 525 | 526 | $(MAKEFILE).Release: Makefile 527 | $(MAKEFILE).Debug: Makefile 528 | -------------------------------------------------------------------------------- /Serialgraph/Resources/logo.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/Resources/logo.PNG -------------------------------------------------------------------------------- /Serialgraph/Serialgraph.pro: -------------------------------------------------------------------------------- 1 | #------------------------------------------------- 2 | # 3 | # Project created by QtCreator 2018-11-29T19:57:48 4 | # 5 | #------------------------------------------------- 6 | 7 | QT += core gui serialport charts network 8 | 9 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 10 | 11 | TARGET = SerialOscillograph_by_QT 12 | TEMPLATE = app 13 | 14 | # The following define makes your compiler emit warnings if you use 15 | # any feature of Qt which has been marked as deprecated (the exact warnings 16 | # depend on your compiler). Please consult the documentation of the 17 | # deprecated API in order to know how to port your code away from it. 18 | DEFINES += QT_DEPRECATED_WARNINGS 19 | 20 | # You can also make your code fail to compile if you use deprecated APIs. 21 | # In order to do so, uncomment the following line. 22 | # You can also select to disable deprecated APIs only up to a certain version of Qt. 23 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 24 | 25 | 26 | SOURCES += \ 27 | main.cpp \ 28 | mainwindow.cpp \ 29 | dataprocess.cpp 30 | 31 | HEADERS += \ 32 | mainwindow.h \ 33 | dataprocess.h 34 | 35 | FORMS += \ 36 | mainwindow.ui 37 | 38 | #RC_ICONS = logo.ico 39 | 40 | RESOURCES += \ 41 | resource.qrc 42 | -------------------------------------------------------------------------------- /Serialgraph/dataprocess.cpp: -------------------------------------------------------------------------------- 1 | #include "dataprocess.h" 2 | 3 | DataProcess::DataProcess() 4 | { 5 | fullsize = 4096; 6 | startFlag = false; 7 | loc = 0; 8 | } 9 | 10 | bool DataProcess::process(char *output,uint16_t* count) 11 | { 12 | unsigned int starttemp = 0; 13 | starttemp = isStart(); 14 | if(startFlag || starttemp!=0xffffffff)//如果收到包头标志,开始处理 15 | { 16 | //预处理 17 | if(startFlag==false) 18 | { 19 | startFlag=true; 20 | data=data.mid(starttemp); 21 | loc=0; 22 | } 23 | //如果接收完成,正式处理 24 | loc=isEnd(); 25 | if(loc) 26 | { 27 | for(int i=0;i=(4+len+1)) 74 | { 75 | char checksum = 0; 76 | for (int i = 0; i < len + 4; i++)//len+3表示校验之前的位置 77 | { 78 | checksum += data.at(i); 79 | } 80 | if (checksum == data.at(len + 4)) //如果数据校验失败,丢弃这一包数据 81 | { 82 | //this->data.remove(0, len + 4);//从缓存中删除错误数据 83 | 84 | return 4+len+1;//继续下一次循环 85 | } 86 | else 87 | { 88 | qDebug()<<"sum error"; 89 | data=data.mid(3); 90 | startFlag=false; 91 | return 0; 92 | } 93 | } 94 | return 0; 95 | } 96 | 97 | bool DataProcess::isFull() 98 | { 99 | if(data.size()>=fullsize) 100 | return true; 101 | return false; 102 | } 103 | 104 | int DataProcess::getFullsize() const 105 | { 106 | return fullsize; 107 | } 108 | 109 | void DataProcess::setFullsize(int value) 110 | { 111 | fullsize = value; 112 | } 113 | 114 | void DataProcess::add(QByteArray &input) 115 | { 116 | data.append(input); 117 | //判断是否接受超量 118 | if(isFull()) 119 | { 120 | startFlag=false; 121 | loc=0; 122 | data=data.mid(input.size()); 123 | } 124 | 125 | } 126 | 127 | void DataProcess::clear() 128 | { 129 | data.clear(); 130 | startFlag=false; 131 | loc=0; 132 | } 133 | -------------------------------------------------------------------------------- /Serialgraph/dataprocess.h: -------------------------------------------------------------------------------- 1 | #ifndef DATAPROCESS_H 2 | #define DATAPROCESS_H 3 | #include 4 | #include 5 | class DataProcess 6 | { 7 | public: 8 | DataProcess(); 9 | void add(QByteArray &input); 10 | void clear(); 11 | bool process(char* output,uint16_t* count); 12 | int getFullsize() const; 13 | void setFullsize(int value); 14 | private: 15 | unsigned int isStart(); 16 | int isEnd(); 17 | bool isFull(); 18 | private: 19 | bool startFlag; 20 | int loc; 21 | int fullsize; 22 | QByteArray data; 23 | }; 24 | 25 | #endif // DATAPROCESS_H 26 | -------------------------------------------------------------------------------- /Serialgraph/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/logo.ico -------------------------------------------------------------------------------- /Serialgraph/main.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | #include 3 | 4 | int main(int argc, char *argv[]) 5 | { 6 | QApplication a(argc, argv); 7 | MainWindow w; 8 | w.show(); 9 | 10 | return a.exec(); 11 | } 12 | -------------------------------------------------------------------------------- /Serialgraph/mainwindow.cpp: -------------------------------------------------------------------------------- 1 | #include "mainwindow.h" 2 | #include "ui_mainwindow.h" 3 | /*曲线颜色*/ 4 | //调整次序 5 | const int color[20]={ 6 | 0xff0000,0xffff00,0x00ff00,0x0000ff,0xff00ff, 7 | 0xff8000,0xc0ff00,0x00ffff,0x8000ff,0x000001, 8 | 0x000000,0x000000,0x000000,0x000000,0x000000, 9 | 0x000000,0x000000,0x000000,0x000000,0x000000, 10 | }; 11 | /*const int color[10]={ 12 | 0xff0000,0xff8000,0xffff00,0xc0ff00,0x00ff00, 13 | 0x00ffff,0x0000ff,0x8000ff,0xff00ff,0x000001, 14 | };*/ 15 | MainWindow::MainWindow(QWidget *parent) : 16 | QMainWindow(parent), 17 | ui(new Ui::MainWindow) 18 | { 19 | QStringList netstring = {"TCP Server","TCP Client","UDP"/*,"UDP Client"*/}; 20 | 21 | 22 | QList ipAddressesList = QNetworkInterface::allAddresses(); 23 | foreach (QHostAddress address, ipAddressesList) { 24 | if (address.protocol() == QAbstractSocket::IPv4Protocol) { 25 | ipAddr = address.toString(); 26 | break; 27 | } 28 | } 29 | 30 | baudspeed.append("2400"); 31 | baudspeed.append("4800"); 32 | baudspeed.append("9600"); 33 | baudspeed.append("19200"); 34 | baudspeed.append("38400"); 35 | baudspeed.append("57600"); 36 | baudspeed.append("115200"); 37 | baudspeed.append("230400"); 38 | baudspeed.append("500000"); 39 | baudspeed.append("1000000"); 40 | bditemf = 1; 41 | ui->setupUi(this); 42 | 43 | SerialSta=false; 44 | commethflag = false; 45 | port=new QSerialPort; 46 | connect(port,SIGNAL(readyRead()),this,SLOT(readData())); 47 | connect(ui->CH1, SIGNAL(stateChanged(int)), this, SLOT(on_CH1_stateChanged())); 48 | connect(ui->CH2, SIGNAL(stateChanged(int)), this, SLOT(on_CH2_stateChanged())); 49 | connect(ui->CH3, SIGNAL(stateChanged(int)), this, SLOT(on_CH3_stateChanged())); 50 | connect(ui->CH4, SIGNAL(stateChanged(int)), this, SLOT(on_CH4_stateChanged())); 51 | connect(ui->CH5, SIGNAL(stateChanged(int)), this, SLOT(on_CH5_stateChanged())); 52 | connect(ui->CH6, SIGNAL(stateChanged(int)), this, SLOT(on_CH6_stateChanged())); 53 | connect(ui->CH7, SIGNAL(stateChanged(int)), this, SLOT(on_CH7_stateChanged())); 54 | connect(ui->CH8, SIGNAL(stateChanged(int)), this, SLOT(on_CH8_stateChanged())); 55 | connect(ui->CH9, SIGNAL(stateChanged(int)), this, SLOT(on_CH9_stateChanged())); 56 | connect(ui->CH10, SIGNAL(stateChanged(int)), this, SLOT(on_CH10_stateChanged())); 57 | connect(ui->CH11, SIGNAL(stateChanged(int)), this, SLOT(on_CH11_stateChanged())); 58 | connect(ui->CH12, SIGNAL(stateChanged(int)), this, SLOT(on_CH12_stateChanged())); 59 | connect(ui->CH13, SIGNAL(stateChanged(int)), this, SLOT(on_CH13_stateChanged())); 60 | connect(ui->CH14, SIGNAL(stateChanged(int)), this, SLOT(on_CH14_stateChanged())); 61 | connect(ui->CH15, SIGNAL(stateChanged(int)), this, SLOT(on_CH15_stateChanged())); 62 | connect(ui->CH16, SIGNAL(stateChanged(int)), this, SLOT(on_CH16_stateChanged())); 63 | connect(ui->CH17, SIGNAL(stateChanged(int)), this, SLOT(on_CH17_stateChanged())); 64 | connect(ui->CH18, SIGNAL(stateChanged(int)), this, SLOT(on_CH18_stateChanged())); 65 | connect(ui->CH19, SIGNAL(stateChanged(int)), this, SLOT(on_CH19_stateChanged())); 66 | connect(ui->CH20, SIGNAL(stateChanged(int)), this, SLOT(on_CH20_stateChanged())); 67 | sendTimer = new QTimer(this); 68 | connect(sendTimer, SIGNAL(timeout()), this, SLOT(on_period_sends())); 69 | selchx[0]=1; 70 | selchx[1]=1; 71 | rcvmaxsize = 256; 72 | recvconvf = false; 73 | for(int i =2;i<20;i++) 74 | selchx[i] = 0; 75 | 76 | QList strlist=QSerialPortInfo::availablePorts(); 77 | QList::const_iterator iter; 78 | for(iter=strlist.constBegin();iter!=strlist.constEnd();++iter) 79 | { 80 | ui->cb_SerialPort->addItem((*iter).portName()); 81 | } 82 | ui->cb_SerialPort->addItems(netstring); 83 | //ui->cb_SerialPort->addItem("TCP Server"); 84 | //ui->cb_SerialPort->addItem("TCP Client"); 85 | //ui->cb_SerialPort->addItem("UDP Server"); 86 | //ui->cb_SerialPort->addItem("UDP Client"); 87 | chartSta=false; 88 | m_chart = new QChart; 89 | ui->chartView->setChart(m_chart); 90 | ui->chartView->setRubberBand(QChartView::RectangleRubberBand); 91 | ui->chartView->setRenderHint(QPainter::Antialiasing); 92 | 93 | //设置坐标系 94 | axisX = new QValueAxis; 95 | axisX->setRange(Xmin,Xmax); 96 | axisX->setLabelFormat("%g"); 97 | axisX->setTickCount(11); 98 | //axisX->setTitleText("X轴"); 99 | axisY = new QValueAxis; 100 | axisY->setRange(Ymin,Ymax); 101 | axisY->setTickCount(11); 102 | //axisY->setTitleText("Y轴"); 103 | 104 | for(int i=0;iaddSeries(&m_series[i]); 109 | m_chart->setAxisX(axisX,&m_series[i]); 110 | m_chart->setAxisY(axisY,&m_series[i]); 111 | m_series[i].setUseOpenGL(true);//openGl 加速 112 | } 113 | 114 | m_chart->legend()->setLabelColor(QColor(0,0,0)); 115 | m_chart->legend()->setAlignment(Qt::AlignRight); 116 | m_chart->legend()->setContentsMargins(0,0,0,0); 117 | m_chart->legend()->setMarkerShape(QLegend::MarkerShapeCircle); 118 | //m_chart->legend()->hide(); 119 | //m_chart->setTitle("串口示波器--基于QT"); 120 | 121 | ui->statusBar->setContentsMargins(8,0,0,0); 122 | 123 | lb_StatusBar_SerialStatus = new QLabel; 124 | lb_StatusBar_SerialStatus->setText("串口状态:已关闭"); 125 | ui->statusBar->insertWidget(0,lb_StatusBar_SerialStatus,1); 126 | 127 | lb_StatusBar_DataRecNum = new QLabel; 128 | lb_StatusBar_DataRecNum->setText(QString("已接收字节:%1").arg(dataRecNum));//修改状态栏 129 | ui->statusBar->insertWidget(1,lb_StatusBar_DataRecNum,1); 130 | 131 | ui->leXSize->setValidator(new QIntValidator(0, 99999, this)); 132 | 133 | } 134 | 135 | MainWindow::~MainWindow() 136 | { 137 | delete ui; 138 | } 139 | 140 | void MainWindow::readData() 141 | { 142 | QByteArray arr; 143 | 144 | if(commethflag == 0) 145 | arr = port->readAll(); 146 | else if(commethflag == 1) 147 | arr = socket->readAll(); 148 | else if(commethflag == 2) 149 | { 150 | //arr = uSocket->readAll(); 151 | arr.resize(uSocket->pendingDatagramSize()); 152 | uSocket->readDatagram(arr.data(), arr.size(),&udpfromhost,&udpfromport); 153 | 154 | ui->Connect_ADDR->setText(udpfromhost.toString()+":"+QString::number(udpfromport)); 155 | // std::cout << ba.data() << std::endl; 156 | //tempaddr = uSocket->peerAddress().toString(); 157 | } 158 | else if(commethflag == 3) 159 | { 160 | arr = TCPCSocket->readAll(); 161 | } 162 | 163 | hex2string(arr); 164 | dataRecNum+=arr.size(); 165 | lb_StatusBar_DataRecNum->setText(QString("已接收字节:%1").arg(dataRecNum));//修改状态栏 166 | // if(ui->RCVAREA->toPlainText().count()>=2048) 167 | // { 168 | // //displaystr.clear(); 169 | // //ui->RCVAREA->toPlainText().right(ui->RCVAREA->toPlainText().count()); 170 | // uint16_t temp1 = ui->RCVAREA->toPlainText().count(); 171 | // uint16_t temp2 = recvbuff.size(); 172 | // ui->RCVAREA->append(recvbuff); 173 | // //ui->RCVAREA->insertPlainText(ui->RCVAREA->toPlainText().right(temp1-temp2)); 174 | // //ui->RCVAREA->append(recvbuff); 175 | // //displaystr=displaystr.right(recvbuff.length()); 176 | // } 177 | // else 178 | // { 179 | // ui->RCVAREA->insertPlainText(recvbuff); 180 | // //displaystr=displaystr.left(displaystr.length()); 181 | // } 182 | ui->RCVAREA->append(recvbuff); 183 | //ui->RCVAREA->moveCursor(QTextCursor::End); 184 | //ui->RCVAREA->textCursor().movePosition(QTextCursor::End); 185 | //ui->RCVAREA->textCursor().deletePreviousChar(); 186 | 187 | // ui->plainTextEdit->appendPlainText(recvbuff); 188 | // ui->plainTextEdit->textCursor().movePosition(QTextCursor::End); 189 | // ui->plainTextEdit->textCursor().deletePreviousChar(); 190 | 191 | bool changed=false;//是否变动了points 192 | int32_t rec_data[16]; 193 | uint16_t dcount = 0; 194 | processor.add(arr);//通讯协议processor添加数据 195 | 196 | //通讯成功&正在更新,持续添加点直至所有数据被添加到曲线 197 | while(processor.process((char *)rec_data,&dcount)&&chartSta==true) 198 | { 199 | //uint16_t dsize = sizeof((char *)rec_data); 200 | Xmax++; 201 | if(Xmax>XSize)//调节X轴(窗口)显示范围 202 | Xmin=Xmax-XSize; 203 | 204 | for(int i=0;iXSize) 220 | { 221 | for(int j=pointssize-XSize;jYmax) 224 | Ymax=m_series[i].pointsVector().at(j).y(); 225 | if(m_series[i].pointsVector().at(j).y()Ymax) 234 | Ymax=m_series[i].pointsVector().at(j).y(); 235 | if(m_series[i].pointsVector().at(j).y()checkBoxXAuto->isChecked()) 242 | axisX->setRange(Xmin,Xmax); 243 | if(ui->checkBoxYAuto->isChecked()) 244 | axisY->setRange(Ymin,Ymax); 245 | } 246 | } 247 | 248 | //void MainWindow::dispformat(QString appendStr) 249 | //{ 250 | // bool atEnd = ui->RCVAREA->size().height() >= 120; 251 | // QTextCharFormat fmt; 252 | // // QScrollBar* pqscfmt; 253 | 254 | // //fmt.setForeground(color); 255 | 256 | // QTextCursor tmp(ui->RCVAREA->document()); 257 | 258 | // tmp.beginEditBlock(); 259 | // tmp.movePosition(QTextCursor::End); 260 | 261 | // if (!ui->RCVAREA->document()->isEmpty()) 262 | // { 263 | // tmp.insertBlock(ui->RCVAREA->textCursor().blockFormat(), ui->RCVAREA->textCursor().charFormat()); 264 | // }else{ 265 | 266 | // tmp.setCharFormat(ui->RCVAREA->textCursor().charFormat()); 267 | // } 268 | 269 | // tmp.movePosition(QTextCursor::End); 270 | // tmp.deletePreviousChar(); 271 | 272 | // tmp.insertText(appendStr, fmt); 273 | 274 | // // preserve the char format 275 | // QTextCharFormat oldCharFormat = ui->RCVAREA->textCursor().charFormat(); 276 | 277 | // if (!ui->RCVAREA->textCursor().hasSelection()) 278 | // ui->RCVAREA->textCursor().setCharFormat(oldCharFormat); 279 | 280 | // tmp.endEditBlock(); 281 | // //if(atEnd) 282 | // // ui->RCVAREA->verticalScrollBar(); 283 | //} 284 | 285 | void MainWindow::server_New_Connect() 286 | { 287 | //获取客户端连接 288 | socket = server->nextPendingConnection(); 289 | tcpClient.append(socket); 290 | //连接QTcpSocket的信号槽,以读取新数据 291 | connect(socket, SIGNAL(readyRead()), this, SLOT(readData())); 292 | connect(socket, SIGNAL(disconnected()), this, SLOT(socket_Disconnected())); 293 | //发送按键使能 294 | //ui->pushButton_Send->setEnabled(true); 295 | 296 | qDebug() << "A Client connect!"; 297 | } 298 | 299 | 300 | void MainWindow::socket_Disconnected() 301 | { 302 | //发送按键失能 303 | //ui->pushButton_Send->setEnabled(false); 304 | for(int i=0; istate() == QAbstractSocket::UnconnectedState) 307 | { 308 | // 删除存储在combox中的客户端信息 309 | // 删除存储在tcpClient列表中的客户端信息 310 | tcpClient[i]->destroyed(); 311 | tcpClient.removeAt(i); 312 | } 313 | } 314 | qDebug() << "Disconnected!"; 315 | } 316 | 317 | 318 | void MainWindow::on_btn_OpenSerial_clicked() 319 | { 320 | if(SerialSta) 321 | { 322 | if(commethflag == 0) 323 | { 324 | port->close(); 325 | lb_StatusBar_SerialStatus->setText("串口状态:已关闭"); 326 | ui->btn_OpenSerial->setText("打开串口"); 327 | SerialSta=false; 328 | } 329 | else if(commethflag == 1) 330 | { 331 | for(int i=0; idisconnectFromHost(); 334 | // bool ok = tcpClient[i]->waitForDisconnected(1000); 335 | // if(!ok) 336 | // { 337 | // // 处理异常 338 | // } 339 | tcpClient.removeAt(i); //从保存的客户端列表中取去除 340 | } 341 | server->close(); //不再监听端口 342 | //修改按键文字 343 | lb_StatusBar_SerialStatus->setText("侦听状态:关闭"); 344 | ui->btn_OpenSerial->setText("开始侦听"); 345 | SerialSta=false; 346 | } 347 | else if(commethflag == 2) 348 | { 349 | uSocket->close();//->close(); //不再监听端口 350 | //修改按键文字 351 | lb_StatusBar_SerialStatus->setText("绑定状态:关闭"); 352 | ui->btn_OpenSerial->setText("开启绑定"); 353 | SerialSta=false; 354 | } 355 | else if(commethflag == 3) 356 | { 357 | TCPCSocket->close();//->close(); //不再监听端口 358 | //修改按键文字 359 | lb_StatusBar_SerialStatus->setText("连接状态:关闭"); 360 | ui->btn_OpenSerial->setText("开启连接"); 361 | SerialSta=false; 362 | } 363 | } 364 | else 365 | { 366 | #ifdef Q_OS_WIN 367 | QString commeth = ui->cb_SerialPort->currentText(); 368 | if(commeth=="TCP Server")// || commeth=="TCP Client" || commeth=="UDP Server" || commeth=="UDP Client") 369 | { 370 | commethflag = 1; 371 | server = new QTcpServer(); 372 | connect(server,SIGNAL(newConnection()),this,SLOT(server_New_Connect())); 373 | } 374 | else if(commeth == "UDP") 375 | { 376 | commethflag = 2; 377 | uSocket = new QUdpSocket(); 378 | //uSocket->bind(QHostAddress(QHostAddress::Any), port); 379 | } 380 | else if(commeth == "TCP Client") 381 | { 382 | TCPCSocket = NULL; 383 | 384 | //分配空间,指定父对象 385 | TCPCSocket = new QTcpSocket(this); 386 | //连接服务器 387 | commethflag = 3; 388 | } 389 | // else if(commeth == "UDP Client") 390 | // { 391 | // commethflag = 4; 392 | // } 393 | else 394 | { 395 | commethflag = 0; 396 | port->setPortName(commeth); 397 | } 398 | #else 399 | port->setPortName("/dev/"+ui->cb_SerialPort->currentText()); 400 | #endif 401 | if(commethflag == 0) 402 | { 403 | port->setBaudRate(ui->cb_baudRate->currentText().toInt()); 404 | port->setDataBits(QSerialPort::Data8); 405 | if(port->open(QIODevice::ReadWrite)) 406 | { 407 | processor.clear(); 408 | lb_StatusBar_SerialStatus->setText("串口状态:已开启"); 409 | ui->btn_OpenSerial->setText("关闭串口"); 410 | //ui->labelstatu->setStyleSheet("border-image: url(:/new/img/lv.png);"); 411 | SerialSta=true; 412 | } 413 | else 414 | { 415 | SerialSta=false; 416 | QMessageBox::information(this,"提示","串口打开失败",QMessageBox::Ok); 417 | //ui->labelstatu->setStyleSheet("border-image: url(:/new/img/red.png);"); 418 | } 419 | } 420 | else if(commethflag == 1) 421 | { 422 | int port = ui->cb_baudRate->currentText().toInt(); 423 | //监听指定的端口 424 | if(!server->listen(QHostAddress::Any, port)) 425 | { 426 | //若出错,则输出错误信息 427 | SerialSta=false; 428 | QMessageBox::information(this,"提示","侦听失败",QMessageBox::Ok); 429 | qDebug()<errorString(); 430 | //return; 431 | } 432 | else 433 | { 434 | processor.clear(); 435 | lb_StatusBar_SerialStatus->setText("侦听状态:已开启"); 436 | ui->btn_OpenSerial->setText("关闭侦听"); 437 | qDebug()<< "Listen succeessfully!"; 438 | SerialSta=true; 439 | } 440 | } 441 | else if(commethflag == 2) 442 | { 443 | int port = ui->cb_baudRate->currentText().toInt(); 444 | if(!uSocket->bind(QHostAddress(ipAddr),port)) 445 | { 446 | SerialSta=false; 447 | QMessageBox::information(this,"提示","绑定失败",QMessageBox::Ok); 448 | qDebug()<errorString(); 449 | } 450 | else 451 | { 452 | processor.clear(); 453 | lb_StatusBar_SerialStatus->setText("绑定状态:已完成"); 454 | ui->btn_OpenSerial->setText("关闭绑定"); 455 | qDebug()<< "Bind Succeessfully!"; 456 | SerialSta=true; 457 | 458 | connect(uSocket, SIGNAL(readyRead()), this, SLOT(readData())); 459 | } 460 | //server->listen() 461 | } 462 | else if(commethflag == 3) 463 | { 464 | int port = ui->cb_baudRate->currentText().toInt(); 465 | //if(!connect(TCPCSocket,)) 466 | QString ip_s = ui->Connect_ADDR->text(); 467 | if(port == 0) 468 | { 469 | QMessageBox::information(this, "PORT", "请输入端口!"); 470 | return; 471 | } 472 | if(ip_s.isEmpty()||ip_s == "Enter IP ADDRESS") 473 | { 474 | QMessageBox::information(this, "IP", "请输入IP地址!"); 475 | return; 476 | } 477 | TCPCSocket->connectToHost(ip_s, port); 478 | if(!TCPCSocket->waitForConnected(30000)) 479 | { 480 | SerialSta=false; 481 | QMessageBox::information(this, "QT网络通信", "连接服务端失败!"); 482 | //return; 483 | } 484 | else 485 | { 486 | processor.clear(); 487 | lb_StatusBar_SerialStatus->setText("连接状态:已连接"); 488 | ui->btn_OpenSerial->setText("关闭连接"); 489 | qDebug()<< "Connect Succeessfully!"; 490 | SerialSta=true; 491 | 492 | connect(TCPCSocket, SIGNAL(readyRead()), this, SLOT(readData())); 493 | } 494 | } 495 | } 496 | } 497 | 498 | void MainWindow::on_btn_help_clicked() 499 | { 500 | QString strtext="1.串口通讯格式:1起始位,1停止位,8数据位,无校验位。\n" 501 | "2.通信协议结构:帧头\\AA AA\\ + 功能码\\F1\\ + 数据字节数\(0-255)例如03 +用户数据\\例如:01 02 03\\ + 校验和\\校验范围为整个帧\n"; 502 | 503 | QMessageBox::information(this, "帮助信息", strtext, QMessageBox::Ok); 504 | } 505 | 506 | void MainWindow::on_btn_StopDis_clicked() 507 | { 508 | if(chartSta==false) 509 | { 510 | processor.clear(); 511 | chartSta=true; 512 | ui->btn_StopDis->setText("暂停更新"); 513 | } 514 | else 515 | { 516 | chartSta=false; 517 | ui->btn_StopDis->setText("开始更新"); 518 | } 519 | } 520 | 521 | void MainWindow::on_action_save_triggered() 522 | { 523 | QString filename; 524 | filename = QFileDialog::getSaveFileName(this,tr("保存文件"),"",tr("text(*.csv)")); 525 | if(filename.isEmpty()) 526 | return; 527 | QFile file(filename); 528 | if(!file.open(QFile::WriteOnly|QFile::Text)) 529 | { 530 | QMessageBox::warning(this,tr("Error"),tr("Read file error:%1!").arg(file.errorString())); 531 | return ; 532 | } 533 | 534 | QTextStream write(&file); 535 | write<::iterator iter; 569 | for(iter=points[i].begin();iter!=points[i].end();iter++) 570 | { 571 | sDataStr.append(QString(",%1").arg(iter->y())); 572 | } 573 | sDataStr.append("\n"); 574 | } 575 | 576 | return sDataStr; 577 | } 578 | //此函数代码来自SACsvStream 579 | int advplain(const QString &s, QString &fld, int i) 580 | { 581 | int j; 582 | j = s.indexOf(',', i); // 查找, 583 | if (j < 0) // 没找到 584 | j = s.length(); 585 | fld = s.mid (i,j-i);//提取内容 586 | return j; 587 | } 588 | //此函数中部分代码来自SACsvStream 589 | void MainWindow::readDataFromCSV(QTextStream &sDataStream) 590 | { 591 | 592 | QString sline[10]; 593 | QString tempValue; 594 | int mmax=0; 595 | float ymin=3.4028235e38f; 596 | float ymax=1.4e-45f; 597 | for(int i=0;iymax) 610 | ymax=tempValue.toFloat(); 611 | if(tempValue.toFloat()mmax) 617 | mmax=xmax; 618 | } 619 | for(int i=0;i200) 625 | Xmin=mmax-200; 626 | else 627 | Xmin=0; 628 | axisX->setRange(0,mmax); 629 | axisY->setRange(ymin,ymax); 630 | } 631 | 632 | void MainWindow::on_btn_ClearSeries_clicked() 633 | { 634 | for(int i=0;isetRange(0,1); 644 | axisY->setRange(0,1); 645 | } 646 | 647 | void MainWindow::on_btn_SetXSize_clicked() 648 | { 649 | //int xsize=0; 650 | XSize=ui->leXSize->text().toInt(); 651 | 652 | } 653 | 654 | void MainWindow::on_CH1_stateChanged() 655 | { 656 | if(ui->CH1->isChecked()) 657 | { 658 | selchx[0] = 1; 659 | //ui->CH1->setEnabled(true); 660 | } 661 | else 662 | { 663 | selchx[0] = 0; 664 | //ui->CH1->setEnabled(false); 665 | } 666 | } 667 | 668 | void MainWindow::on_CH2_stateChanged() 669 | { 670 | if(ui->CH2->isChecked()) 671 | { 672 | // ui->CH2->setEnabled(true); 673 | selchx[1] = 1; 674 | } 675 | else 676 | { 677 | //ui->CH2->setEnabled(false); 678 | selchx[1] = 0; 679 | } 680 | } 681 | void MainWindow::on_CH3_stateChanged() 682 | { 683 | if(ui->CH3->isChecked()) 684 | { 685 | //ui->CH3->setEnabled(true); 686 | selchx[2] = 1; 687 | } 688 | else 689 | { 690 | //ui->CH3->setEnabled(false); 691 | selchx[2] = 0; 692 | } 693 | } 694 | void MainWindow::on_CH4_stateChanged() 695 | { 696 | if(ui->CH4->isChecked()) 697 | { 698 | //ui->CH4->setEnabled(true); 699 | selchx[3] = 1; 700 | } 701 | else 702 | { 703 | //ui->CH4->setEnabled(false); 704 | selchx[3] = 0; 705 | } 706 | } 707 | void MainWindow::on_CH5_stateChanged() 708 | { 709 | if(ui->CH5->isChecked()) 710 | { 711 | // ui->CH5->setEnabled(true); 712 | selchx[4] = 1; 713 | } 714 | else 715 | { 716 | // ui->CH5->setEnabled(false); 717 | selchx[4] = 0; 718 | } 719 | } 720 | void MainWindow::on_CH6_stateChanged() 721 | { 722 | if(ui->CH6->isChecked()) 723 | { 724 | //ui->CH6->setEnabled(true); 725 | selchx[5] = 1; 726 | } 727 | else 728 | { 729 | //ui->CH6->setEnabled(false); 730 | selchx[5] = 0; 731 | } 732 | } 733 | void MainWindow::on_CH7_stateChanged() 734 | { 735 | if(ui->CH7->isChecked()) 736 | { 737 | //ui->CH7->setEnabled(true); 738 | selchx[6] = 1; 739 | } 740 | else 741 | { 742 | //ui->CH7->setEnabled(false); 743 | selchx[6] = 0; 744 | } 745 | } 746 | void MainWindow::on_CH8_stateChanged() 747 | { 748 | if(ui->CH8->isChecked()) 749 | { 750 | //ui->CH8->setEnabled(true); 751 | selchx[7] = 1; 752 | } 753 | else 754 | { 755 | //ui->CH8->setEnabled(false); 756 | selchx[7] = 0; 757 | } 758 | } 759 | void MainWindow::on_CH9_stateChanged() 760 | { 761 | if(ui->CH9->isChecked()) 762 | { 763 | //ui->CH9->setEnabled(true); 764 | selchx[8] = 1; 765 | } 766 | else 767 | { 768 | //ui->CH9->setEnabled(false); 769 | selchx[8] = 0; 770 | } 771 | } 772 | void MainWindow::on_CH10_stateChanged() 773 | { 774 | if(ui->CH10->isChecked()) 775 | { 776 | //ui->CH10->setEnabled(true); 777 | selchx[9] = 1; 778 | } 779 | else 780 | { 781 | // ui->CH10->setEnabled(false); 782 | selchx[9] = 0; 783 | } 784 | } 785 | void MainWindow::on_CH11_stateChanged() 786 | { 787 | if(ui->CH11->isChecked()) 788 | { 789 | //ui->CH11->setEnabled(true); 790 | selchx[10] = 1; 791 | } 792 | else 793 | { 794 | //ui->CH11->setEnabled(false); 795 | selchx[10] = 0; 796 | } 797 | } 798 | void MainWindow::on_CH12_stateChanged() 799 | { 800 | if(ui->CH12->isChecked()) 801 | { 802 | //ui->CH12->setEnabled(true); 803 | selchx[11] = 1; 804 | } 805 | else 806 | { 807 | //ui->CH12->setEnabled(false); 808 | selchx[11] = 0; 809 | } 810 | } 811 | void MainWindow::on_CH13_stateChanged() 812 | { 813 | if(ui->CH13->isChecked()) 814 | { 815 | //ui->CH13->setEnabled(true); 816 | selchx[12] = 1; 817 | } 818 | else 819 | { 820 | //ui->CH13->setEnabled(false); 821 | selchx[12] = 0; 822 | } 823 | } 824 | void MainWindow::on_CH14_stateChanged() 825 | { 826 | if(ui->CH14->isChecked()) 827 | { 828 | //ui->CH14->setEnabled(true); 829 | selchx[13] = 1; 830 | } 831 | else 832 | { 833 | //ui->CH14->setEnabled(false); 834 | selchx[13] = 0; 835 | } 836 | } 837 | void MainWindow::on_CH15_stateChanged() 838 | { 839 | if(ui->CH15->isChecked()) 840 | { 841 | //ui->CH15->setEnabled(true); 842 | selchx[14] = 1; 843 | } 844 | else 845 | { 846 | //ui->CH15->setEnabled(false); 847 | selchx[14] = 0; 848 | } 849 | } 850 | void MainWindow::on_CH16_stateChanged() 851 | { 852 | if(ui->CH16->isChecked()) 853 | { 854 | //ui->CH16->setEnabled(true); 855 | selchx[15] = 1; 856 | } 857 | else 858 | { 859 | //ui->CH16->setEnabled(false); 860 | selchx[15] = 0; 861 | } 862 | } 863 | void MainWindow::on_CH17_stateChanged() 864 | { 865 | if(ui->CH17->isChecked()) 866 | { 867 | //ui->CH17->setEnabled(true); 868 | selchx[16] = 1; 869 | } 870 | else 871 | { 872 | //ui->CH17->setEnabled(false); 873 | selchx[16] = 0; 874 | } 875 | } 876 | void MainWindow::on_CH18_stateChanged() 877 | { 878 | if(ui->CH18->isChecked()) 879 | { 880 | //ui->CH18->setEnabled(true); 881 | selchx[17] = 1; 882 | } 883 | else 884 | { 885 | //ui->CH18->setEnabled(false); 886 | selchx[17] = 0; 887 | } 888 | } 889 | void MainWindow::on_CH19_stateChanged() 890 | { 891 | if(ui->CH19->isChecked()) 892 | { 893 | //ui->CH19->setEnabled(true); 894 | selchx[18] = 1; 895 | } 896 | else 897 | { 898 | //ui->CH19->setEnabled(false); 899 | selchx[18] = 0; 900 | } 901 | } 902 | void MainWindow::on_CH20_stateChanged() 903 | { 904 | if(ui->CH20->isChecked()) 905 | { 906 | //ui->CH20->setEnabled(true); 907 | selchx[19] = 1; 908 | } 909 | else 910 | { 911 | //ui->CH20->setEnabled(false); 912 | selchx[19] = 0; 913 | } 914 | } 915 | 916 | 917 | void MainWindow::hex2string(QByteArray &rcvstring) 918 | { 919 | 920 | recvbuff.remove(0,recvbuff.size()); 921 | 922 | if(ui->HEXRCV->isChecked()) 923 | { 924 | for(int i = 0;iHEXSND->isChecked()) 944 | { 945 | for(int i = 0;i='0'&&sendcoms.at(i)<='9') 951 | { 952 | if(j%2==0) 953 | hexhi = sendcoms.at(i)-'0'; 954 | else if(j%2==1) 955 | { 956 | hexlo = sendcoms.at(i)-'0'; 957 | sendbuff.append((hexhi<<4)+hexlo); 958 | } 959 | } 960 | else if(sendcoms.at(i)=='A'||sendcoms.at(i)=='B'||sendcoms.at(i)=='C'||sendcoms.at(i)=='D'||sendcoms.at(i)=='E'||sendcoms.at(i)=='F') 961 | { 962 | if(j%2==0) 963 | hexhi = sendcoms.at(i)-'A'+10; 964 | else if(j%2==1) 965 | { 966 | hexlo = sendcoms.at(i)-'A'+10; 967 | sendbuff.append((hexhi<<4)+hexlo); 968 | } 969 | 970 | } 971 | else if(sendcoms.at(i)=='a'||sendcoms.at(i)=='b'||sendcoms.at(i)=='c'||sendcoms.at(i)=='d'||sendcoms.at(i)=='e'||sendcoms.at(i)=='f') 972 | { 973 | if(j%2==0) 974 | hexhi = sendcoms.at(i)-'a'+10; 975 | else if(j%2==1) 976 | { 977 | hexlo = sendcoms.at(i)-'a'+10; 978 | sendbuff.append((hexhi<<4)+hexlo); 979 | } 980 | } 981 | else if(sendcoms.at(i)=='\n') 982 | { 983 | continue; 984 | } 985 | else 986 | { 987 | //QMessageBox::warning(NULL, "warning", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); 988 | qDebug()<<"NO"; 989 | return; 990 | } 991 | j++; 992 | 993 | } 994 | else 995 | { 996 | 997 | continue; 998 | } 999 | 1000 | } 1001 | 1002 | 1003 | } 1004 | else 1005 | sendbuff = sendcoms; 1006 | } 1007 | 1008 | void MainWindow::writeData(char* data,unsigned int len) 1009 | { 1010 | //port->write(data,len); 1011 | 1012 | if(commethflag == 0) 1013 | port->write(data,len); 1014 | else if(commethflag == 1) 1015 | socket->write(data,len); 1016 | else if(commethflag == 2) 1017 | { 1018 | QString tempstrip = ui->Connect_ADDR->text(); 1019 | QStringList ipport = (ui->Connect_ADDR->text()).split(":"); 1020 | QHostAddress address(ipport.at(0)); 1021 | quint16 udpport = (ipport.at(1)).toUInt(); 1022 | uSocket->writeDatagram(QByteArray(data,len),address,udpport); 1023 | } 1024 | else if(commethflag == 3) 1025 | { 1026 | TCPCSocket->write(data,len); 1027 | } 1028 | } 1029 | 1030 | void MainWindow::on_BTNSEND_clicked() 1031 | { 1032 | QByteArray sendcomstxt = (ui->sendmulcom->toPlainText()).toLatin1(); 1033 | QByteArray senddata; 1034 | //uint16_t len =0; 1035 | 1036 | string2hex(sendcomstxt); 1037 | senddata = sendbuff; 1038 | 1039 | //len = senddata.size(); 1040 | 1041 | writeData(senddata.data(),senddata.size()); 1042 | } 1043 | 1044 | void MainWindow::on_period_sends() 1045 | { 1046 | QByteArray sendcomstxt = (ui->sendmulcom->toPlainText()).toLatin1(); 1047 | QByteArray senddata; 1048 | //uint16_t len =0; 1049 | 1050 | string2hex(sendcomstxt); 1051 | senddata = sendbuff; 1052 | 1053 | //len = senddata.size(); 1054 | 1055 | writeData(senddata.data(),senddata.size()); 1056 | } 1057 | 1058 | void MainWindow::on_HEXSND_stateChanged() 1059 | { 1060 | QByteArray sendcomstxt = (ui->sendmulcom->toPlainText()).toLatin1(); 1061 | //unsigned char hexcode[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 1062 | string2hex(sendcomstxt); 1063 | } 1064 | 1065 | void MainWindow::on_pushButton_clicked() 1066 | { 1067 | QByteArray sendcomstxt = (ui->lineEdit_17->text()).toLatin1(); 1068 | QByteArray senddata; 1069 | //uint16_t len =0; 1070 | 1071 | string2hex(sendcomstxt); 1072 | senddata = sendbuff; 1073 | 1074 | //len = senddata.size(); 1075 | 1076 | writeData(senddata.data(),senddata.size()); 1077 | } 1078 | 1079 | void MainWindow::on_pushButton_2_clicked() 1080 | { 1081 | QByteArray sendcomstxt = (ui->lineEdit_18->text()).toLatin1(); 1082 | QByteArray senddata; 1083 | //uint16_t len =0; 1084 | 1085 | string2hex(sendcomstxt); 1086 | senddata = sendbuff; 1087 | 1088 | //len = senddata.size(); 1089 | 1090 | writeData(senddata.data(),senddata.size()); 1091 | } 1092 | 1093 | void MainWindow::on_pushButton_3_clicked() 1094 | { 1095 | QByteArray sendcomstxt = (ui->lineEdit_19->text()).toLatin1(); 1096 | QByteArray senddata; 1097 | //uint16_t len =0; 1098 | 1099 | string2hex(sendcomstxt); 1100 | senddata = sendbuff; 1101 | 1102 | //len = senddata.size(); 1103 | 1104 | writeData(senddata.data(),senddata.size()); 1105 | } 1106 | 1107 | void MainWindow::on_pushButton_4_clicked() 1108 | { 1109 | QByteArray sendcomstxt = (ui->lineEdit_20->text()).toLatin1(); 1110 | QByteArray senddata; 1111 | //uint16_t len =0; 1112 | 1113 | string2hex(sendcomstxt); 1114 | senddata = sendbuff; 1115 | 1116 | //len = senddata.size(); 1117 | 1118 | writeData(senddata.data(),senddata.size()); 1119 | } 1120 | 1121 | void MainWindow::on_pushButton_5_clicked() 1122 | { 1123 | QByteArray sendcomstxt = (ui->lineEdit_21->text()).toLatin1(); 1124 | QByteArray senddata; 1125 | //uint16_t len =0; 1126 | 1127 | string2hex(sendcomstxt); 1128 | senddata = sendbuff; 1129 | 1130 | //len = senddata.size(); 1131 | 1132 | writeData(senddata.data(),senddata.size()); 1133 | } 1134 | 1135 | void MainWindow::on_pushButton_6_clicked() 1136 | { 1137 | QByteArray sendcomstxt = (ui->lineEdit_22->text()).toLatin1(); 1138 | QByteArray senddata; 1139 | //uint16_t len =0; 1140 | 1141 | string2hex(sendcomstxt); 1142 | senddata = sendbuff; 1143 | 1144 | //len = senddata.size(); 1145 | 1146 | writeData(senddata.data(),senddata.size()); 1147 | } 1148 | 1149 | void MainWindow::on_periodsend_stateChanged() 1150 | { 1151 | QString timestr = ui->lineEdit_16->text(); 1152 | 1153 | uint timevalue; 1154 | 1155 | if(timestr.isEmpty()) 1156 | { 1157 | QMessageBox::warning(NULL, "warning", "timer is empty", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); 1158 | qDebug()<<"timer is empty!!"; 1159 | return; 1160 | } 1161 | else 1162 | { 1163 | timevalue = (ui->lineEdit_16->text()).toUInt(); 1164 | } 1165 | if(ui->periodsend->isChecked()) 1166 | { 1167 | if (sendTimer->isActive() == false) 1168 | { 1169 | sendTimer->start(timevalue); 1170 | } 1171 | } 1172 | else 1173 | { 1174 | 1175 | if (sendTimer->isActive() == true) 1176 | { 1177 | sendTimer->stop(); 1178 | } 1179 | } 1180 | } 1181 | 1182 | void MainWindow::on_cb_SerialPort_activated() 1183 | { 1184 | QString commeth = ui->cb_SerialPort->currentText(); 1185 | //port->setPortName(commeth); 1186 | if(commeth=="TCP Server")// || commeth=="TCP Client" || commeth=="UDP") 1187 | { 1188 | lb_StatusBar_SerialStatus->setText("侦听状态:关闭"); 1189 | ui->btn_OpenSerial->setText("开始侦听"); 1190 | ui->cb_baudRate->clear(); 1191 | ui->Connect_ADDR->setDisabled(true); 1192 | bditemf = 0; 1193 | } 1194 | else if(commeth=="TCP Client") 1195 | { 1196 | lb_StatusBar_SerialStatus->setText("绑定状态:关闭"); 1197 | ui->btn_OpenSerial->setText("开启绑定"); 1198 | ui->cb_baudRate->clear(); 1199 | ui->Connect_ADDR->setEnabled(true); 1200 | ui->Connect_ADDR->setText("Enter IP ADDRESS"); 1201 | ui->Connect_ADDR->setStatusTip("Enter IP ADDRESS"); 1202 | bditemf = 0; 1203 | } 1204 | else if(commeth=="UDP") 1205 | { 1206 | lb_StatusBar_SerialStatus->setText("绑定状态:关闭"); 1207 | ui->btn_OpenSerial->setText("开启绑定"); 1208 | ui->cb_baudRate->clear(); 1209 | ui->Connect_ADDR->setEnabled(true); 1210 | bditemf = 0; 1211 | } 1212 | else 1213 | { 1214 | lb_StatusBar_SerialStatus->setText("串口状态:已关闭"); 1215 | ui->btn_OpenSerial->setText("打开串口"); 1216 | if(!bditemf) 1217 | ui->cb_baudRate->addItems(baudspeed); 1218 | ui->Connect_ADDR->setDisabled(true); 1219 | bditemf = 1; 1220 | } 1221 | 1222 | } 1223 | -------------------------------------------------------------------------------- /Serialgraph/mainwindow.h: -------------------------------------------------------------------------------- 1 | #ifndef MAINWINDOW_H 2 | #define MAINWINDOW_H 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | 12 | #include 13 | #include "QLineSeries" 14 | #include "QValueAxis" 15 | #include "QTimer" 16 | #include "QTime" 17 | #include "QList" 18 | #include "qmath.h" 19 | #include "QPointF" 20 | #include "QDebug" 21 | #include "QChartView" 22 | #include "dataprocess.h" 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | 29 | QT_CHARTS_USE_NAMESPACE 30 | 31 | namespace Ui { 32 | class MainWindow; 33 | } 34 | 35 | #define Channel_number 20 36 | 37 | 38 | 39 | class MainWindow : public QMainWindow 40 | { 41 | Q_OBJECT 42 | 43 | public: 44 | explicit MainWindow(QWidget *parent = 0); 45 | ~MainWindow(); 46 | private slots: 47 | void readData(); 48 | //void socket_Read_Data(); 49 | void socket_Disconnected(); 50 | void server_New_Connect(); 51 | //void udp_receive(); 52 | 53 | void on_btn_OpenSerial_clicked(); 54 | 55 | void on_btn_help_clicked(); 56 | 57 | void on_btn_StopDis_clicked(); 58 | 59 | void on_action_save_triggered(); 60 | 61 | void on_action_load_triggered(); 62 | 63 | void on_btn_ClearSeries_clicked(); 64 | 65 | void on_btn_SetXSize_clicked(); 66 | 67 | void on_CH1_stateChanged(); 68 | void on_CH2_stateChanged(); 69 | void on_CH3_stateChanged(); 70 | void on_CH4_stateChanged(); 71 | void on_CH5_stateChanged(); 72 | void on_CH6_stateChanged(); 73 | void on_CH7_stateChanged(); 74 | void on_CH8_stateChanged(); 75 | void on_CH9_stateChanged(); 76 | void on_CH10_stateChanged(); 77 | void on_CH11_stateChanged(); 78 | void on_CH12_stateChanged(); 79 | void on_CH13_stateChanged(); 80 | void on_CH14_stateChanged(); 81 | void on_CH15_stateChanged(); 82 | void on_CH16_stateChanged(); 83 | void on_CH17_stateChanged(); 84 | void on_CH18_stateChanged(); 85 | void on_CH19_stateChanged(); 86 | void on_CH20_stateChanged(); 87 | 88 | void writeData(char* data,unsigned int len); 89 | 90 | void on_BTNSEND_clicked(); 91 | 92 | void on_HEXSND_stateChanged(); 93 | 94 | void on_pushButton_clicked(); 95 | 96 | void on_pushButton_2_clicked(); 97 | 98 | void on_pushButton_3_clicked(); 99 | 100 | void on_pushButton_4_clicked(); 101 | 102 | void on_pushButton_5_clicked(); 103 | 104 | void on_pushButton_6_clicked(); 105 | 106 | void on_periodsend_stateChanged(); 107 | 108 | void on_period_sends(); 109 | 110 | void on_cb_SerialPort_activated(); 111 | 112 | 113 | private: 114 | QString writeDataToCSV(); 115 | void readDataFromCSV(QTextStream &sDataStream); 116 | void string2hex(QByteArray sendcoms); 117 | void hex2string(QByteArray &rcvstring); 118 | // void dispformat(QString appendStr); 119 | private: 120 | bool SerialSta; 121 | DataProcess processor; 122 | bool chartSta; 123 | QSerialPort *port; 124 | Ui::MainWindow *ui; 125 | QLabel *lb_StatusBar_SerialStatus; 126 | QLabel *lb_StatusBar_DataRecNum; 127 | 128 | QChart *m_chart; 129 | QLineSeries m_series[Channel_number]; 130 | QVector points[Channel_number]; 131 | QValueAxis *axisX; 132 | QValueAxis *axisY; 133 | 134 | bool selchx[20]; 135 | unsigned long int dataRecNum=0; 136 | int XSize = 200; 137 | int timeId; 138 | int Xmin=0; 139 | int Xmax=0; 140 | float Ymin=3.4028235e38f; 141 | float Ymax=1.4e-45f; 142 | QByteArray sendbuff; 143 | QString recvbuff; 144 | QTimer *sendTimer;// 定时器对象 145 | uint16_t rcvmaxsize; 146 | bool recvconvf; 147 | QString displaystr; 148 | QMutex mutex; 149 | QStringList baudspeed; 150 | uint8_t commethflag; 151 | QTcpServer* server; 152 | QTcpSocket* socket; 153 | QList tcpClient; 154 | QUdpSocket *uSocket; 155 | QString ipAddr; 156 | QTcpSocket* TCPCSocket; 157 | 158 | QHostAddress udpfromhost; 159 | quint16 udpfromport; 160 | bool bditemf; 161 | //QList ipAddressesList; 162 | 163 | }; 164 | 165 | #endif // MAINWINDOW_H 166 | -------------------------------------------------------------------------------- /Serialgraph/mainwindow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | MainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1185 10 | 804 11 | 12 | 13 | 14 | 串口示波器 15 | 16 | 17 | 18 | :/Resources/logo.png:/Resources/logo.png 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 0 27 | 320 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | V1 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | V2 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | V3 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | V4 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | V5 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | V6 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | V7 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | V8 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | V9 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | V10 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | V11 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | V12 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | V13 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | V14 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | V15 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | CH 192 | 193 | 194 | true 195 | 196 | 197 | 198 | 199 | 200 | 201 | CH 202 | 203 | 204 | true 205 | 206 | 207 | 208 | 209 | 210 | 211 | CH 212 | 213 | 214 | 215 | 216 | 217 | 218 | CH 219 | 220 | 221 | 222 | 223 | 224 | 225 | CH 226 | 227 | 228 | 229 | 230 | 231 | 232 | CH 233 | 234 | 235 | 236 | 237 | 238 | 239 | CH 240 | 241 | 242 | 243 | 244 | 245 | 246 | CH 247 | 248 | 249 | 250 | 251 | 252 | 253 | CH 254 | 255 | 256 | 257 | 258 | 259 | 260 | CH 261 | 262 | 263 | 264 | 265 | 266 | 267 | CH 268 | 269 | 270 | 271 | 272 | 273 | 274 | CH 275 | 276 | 277 | 278 | 279 | 280 | 281 | CH 282 | 283 | 284 | 285 | 286 | 287 | 288 | CH 289 | 290 | 291 | 292 | 293 | 294 | 295 | CH 296 | 297 | 298 | 299 | 300 | 301 | 302 | CH 303 | 304 | 305 | 306 | 307 | 308 | 309 | CH 310 | 311 | 312 | 313 | 314 | 315 | 316 | CH 317 | 318 | 319 | 320 | 321 | 322 | 323 | CH 324 | 325 | 326 | 327 | 328 | 329 | 330 | CH 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 0 343 | 120 344 | 345 | 346 | 347 | 348 | 16777215 349 | 360 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 0 363 | 0 364 | 365 | 366 | 367 | 368 | 16777215 369 | 16777215 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 16进制接收 380 | 381 | 382 | 383 | 384 | 385 | 386 | 16进制发送 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 0 397 | 0 398 | 399 | 400 | 401 | 定时发送 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 60 410 | 20 411 | 412 | 413 | 414 | 1000 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 发送 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 0 438 | 0 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 0 448 | 0 449 | 450 | 451 | 452 | 453 | 60 454 | 20 455 | 456 | 457 | 458 | DATA1 459 | 460 | 461 | 462 | 16 463 | 16 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 0 477 | 0 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 60 487 | 20 488 | 489 | 490 | 491 | DATA2 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 0 504 | 0 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 60 514 | 20 515 | 516 | 517 | 518 | DATA3 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 0 531 | 0 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 60 541 | 20 542 | 543 | 544 | 545 | DATA4 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 0 558 | 0 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 60 568 | 20 569 | 570 | 571 | 572 | DATA5 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 0 585 | 0 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 60 595 | 20 596 | 597 | 598 | 599 | DATA6 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 10 613 | 614 | 615 | 10 616 | 617 | 618 | 619 | 620 | 通信方式 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 0 629 | 0 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 波特率/端口 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 0 646 | 0 647 | 648 | 649 | 650 | true 651 | 652 | 653 | 0 654 | 655 | 656 | 657 | 2400 658 | 659 | 660 | 661 | 662 | 4800 663 | 664 | 665 | 666 | 667 | 9600 668 | 669 | 670 | 671 | 672 | 19200 673 | 674 | 675 | 676 | 677 | 38400 678 | 679 | 680 | 681 | 682 | 57600 683 | 684 | 685 | 686 | 687 | 76800 688 | 689 | 690 | 691 | 692 | 115200 693 | 694 | 695 | 696 | 697 | 153600 698 | 699 | 700 | 701 | 702 | 230400 703 | 704 | 705 | 706 | 707 | 500000 708 | 709 | 710 | 711 | 712 | 1000000 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | false 721 | 722 | 723 | 724 | 120 725 | 0 726 | 727 | 728 | 729 | 730 | 16777215 731 | 16777215 732 | 733 | 734 | 735 | false 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 0 744 | 0 745 | 746 | 747 | 748 | 开启 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 0 757 | 0 758 | 759 | 760 | 761 | 开始更新 762 | 763 | 764 | 765 | 766 | 767 | 768 | 清除曲线 769 | 770 | 771 | 772 | 773 | 774 | 775 | 设置X范围 776 | 777 | 778 | 779 | 780 | 781 | 782 | 200 783 | 784 | 785 | 5 786 | 787 | 788 | true 789 | 790 | 791 | Qt::LogicalMoveStyle 792 | 793 | 794 | false 795 | 796 | 797 | 798 | 799 | 800 | 801 | X自动 802 | 803 | 804 | true 805 | 806 | 807 | 808 | 809 | 810 | 811 | Y自动 812 | 813 | 814 | true 815 | 816 | 817 | 818 | 819 | 820 | 821 | Qt::Horizontal 822 | 823 | 824 | 825 | 40 826 | 20 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 帮助 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 0 846 | 0 847 | 1185 848 | 26 849 | 850 | 851 | 852 | 853 | 菜单 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 保存数据 864 | 865 | 866 | 867 | 868 | 载入数据 869 | 870 | 871 | 872 | 873 | 874 | 875 | QtCharts::QChartView 876 | QGraphicsView 877 |
qchartview.h
878 |
879 |
880 | 881 | 882 | 883 | 884 |
885 | -------------------------------------------------------------------------------- /Serialgraph/pyuic5.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/pyuic5.exe -------------------------------------------------------------------------------- /Serialgraph/release/Qt5Charts.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/Qt5Charts.dll -------------------------------------------------------------------------------- /Serialgraph/release/Qt5Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/Qt5Core.dll -------------------------------------------------------------------------------- /Serialgraph/release/Qt5Gui.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/Qt5Gui.dll -------------------------------------------------------------------------------- /Serialgraph/release/Qt5Network.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/Qt5Network.dll -------------------------------------------------------------------------------- /Serialgraph/release/Qt5OpenGL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/Qt5OpenGL.dll -------------------------------------------------------------------------------- /Serialgraph/release/Qt5SerialPort.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/Qt5SerialPort.dll -------------------------------------------------------------------------------- /Serialgraph/release/Qt5Sql.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/Qt5Sql.dll -------------------------------------------------------------------------------- /Serialgraph/release/Qt5WebSockets.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/Qt5WebSockets.dll -------------------------------------------------------------------------------- /Serialgraph/release/Qt5Widgets.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/Qt5Widgets.dll -------------------------------------------------------------------------------- /Serialgraph/release/SerialOscillograph_by_QT.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/SerialOscillograph_by_QT.exe -------------------------------------------------------------------------------- /Serialgraph/release/bearer/qgenericbearer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/bearer/qgenericbearer.dll -------------------------------------------------------------------------------- /Serialgraph/release/iconengines/qsvgicon.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/iconengines/qsvgicon.dll -------------------------------------------------------------------------------- /Serialgraph/release/imageformats/qgif.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/imageformats/qgif.dll -------------------------------------------------------------------------------- /Serialgraph/release/imageformats/qicns.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/imageformats/qicns.dll -------------------------------------------------------------------------------- /Serialgraph/release/imageformats/qico.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/imageformats/qico.dll -------------------------------------------------------------------------------- /Serialgraph/release/imageformats/qjpeg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/imageformats/qjpeg.dll -------------------------------------------------------------------------------- /Serialgraph/release/imageformats/qsvg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/imageformats/qsvg.dll -------------------------------------------------------------------------------- /Serialgraph/release/imageformats/qtga.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/imageformats/qtga.dll -------------------------------------------------------------------------------- /Serialgraph/release/imageformats/qtiff.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/imageformats/qtiff.dll -------------------------------------------------------------------------------- /Serialgraph/release/imageformats/qwbmp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/imageformats/qwbmp.dll -------------------------------------------------------------------------------- /Serialgraph/release/imageformats/qwebp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/imageformats/qwebp.dll -------------------------------------------------------------------------------- /Serialgraph/release/libgcc_s_seh-1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/libgcc_s_seh-1.dll -------------------------------------------------------------------------------- /Serialgraph/release/libstdc++-6.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/libstdc++-6.dll -------------------------------------------------------------------------------- /Serialgraph/release/libwinpthread-1.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/libwinpthread-1.dll -------------------------------------------------------------------------------- /Serialgraph/release/opengl32sw.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/opengl32sw.dll -------------------------------------------------------------------------------- /Serialgraph/release/platforms/qwindows.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/platforms/qwindows.dll -------------------------------------------------------------------------------- /Serialgraph/release/styles/qwindowsvistastyle.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/styles/qwindowsvistastyle.dll -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_ar.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_ar.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_bg.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_bg.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_ca.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_ca.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_cs.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_cs.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_da.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_da.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_de.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_de.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_en.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_en.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_es.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_es.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_fi.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_fi.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_fr.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_fr.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_gd.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_gd.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_he.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_he.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_hu.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_hu.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_it.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_it.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_ja.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_ja.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_ko.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_ko.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_lv.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_lv.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_pl.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_pl.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_ru.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_ru.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_sk.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_sk.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_uk.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_uk.qm -------------------------------------------------------------------------------- /Serialgraph/release/translations/qt_zh_TW.qm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/Serialgraph/release/translations/qt_zh_TW.qm -------------------------------------------------------------------------------- /Serialgraph/resource.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | Resources/logo.png 4 | 5 | 6 | -------------------------------------------------------------------------------- /Serialgraph/serial.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'mainwindow.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.0 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | 13 | 14 | class Ui_MainWindow(object): 15 | def setupUi(self, MainWindow): 16 | MainWindow.setObjectName("MainWindow") 17 | MainWindow.resize(1185, 804) 18 | icon = QtGui.QIcon() 19 | icon.addPixmap(QtGui.QPixmap(":/Resources/logo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 20 | MainWindow.setWindowIcon(icon) 21 | self.centralWidget = QtWidgets.QWidget(MainWindow) 22 | self.centralWidget.setObjectName("centralWidget") 23 | self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.centralWidget) 24 | self.verticalLayout_4.setContentsMargins(11, 11, 11, 11) 25 | self.verticalLayout_4.setSpacing(6) 26 | self.verticalLayout_4.setObjectName("verticalLayout_4") 27 | self.chartView = QtChart.QChartView(self.centralWidget) 28 | self.chartView.setMinimumSize(QtCore.QSize(0, 320)) 29 | self.chartView.setObjectName("chartView") 30 | self.verticalLayout_4.addWidget(self.chartView) 31 | self.horizontalLayout_4 = QtWidgets.QHBoxLayout() 32 | self.horizontalLayout_4.setSpacing(6) 33 | self.horizontalLayout_4.setObjectName("horizontalLayout_4") 34 | self.LBL1 = QtWidgets.QLabel(self.centralWidget) 35 | self.LBL1.setObjectName("LBL1") 36 | self.horizontalLayout_4.addWidget(self.LBL1) 37 | self.lineEdit_3 = QtWidgets.QLineEdit(self.centralWidget) 38 | self.lineEdit_3.setObjectName("lineEdit_3") 39 | self.horizontalLayout_4.addWidget(self.lineEdit_3) 40 | self.LBL2 = QtWidgets.QLabel(self.centralWidget) 41 | self.LBL2.setObjectName("LBL2") 42 | self.horizontalLayout_4.addWidget(self.LBL2) 43 | self.lineEdit_2 = QtWidgets.QLineEdit(self.centralWidget) 44 | self.lineEdit_2.setObjectName("lineEdit_2") 45 | self.horizontalLayout_4.addWidget(self.lineEdit_2) 46 | self.LBL3 = QtWidgets.QLabel(self.centralWidget) 47 | self.LBL3.setObjectName("LBL3") 48 | self.horizontalLayout_4.addWidget(self.LBL3) 49 | self.lineEdit = QtWidgets.QLineEdit(self.centralWidget) 50 | self.lineEdit.setObjectName("lineEdit") 51 | self.horizontalLayout_4.addWidget(self.lineEdit) 52 | self.LBL4 = QtWidgets.QLabel(self.centralWidget) 53 | self.LBL4.setObjectName("LBL4") 54 | self.horizontalLayout_4.addWidget(self.LBL4) 55 | self.lineEdit_5 = QtWidgets.QLineEdit(self.centralWidget) 56 | self.lineEdit_5.setObjectName("lineEdit_5") 57 | self.horizontalLayout_4.addWidget(self.lineEdit_5) 58 | self.LBL5 = QtWidgets.QLabel(self.centralWidget) 59 | self.LBL5.setObjectName("LBL5") 60 | self.horizontalLayout_4.addWidget(self.LBL5) 61 | self.lineEdit_4 = QtWidgets.QLineEdit(self.centralWidget) 62 | self.lineEdit_4.setObjectName("lineEdit_4") 63 | self.horizontalLayout_4.addWidget(self.lineEdit_4) 64 | self.LBL6 = QtWidgets.QLabel(self.centralWidget) 65 | self.LBL6.setObjectName("LBL6") 66 | self.horizontalLayout_4.addWidget(self.LBL6) 67 | self.lineEdit_6 = QtWidgets.QLineEdit(self.centralWidget) 68 | self.lineEdit_6.setObjectName("lineEdit_6") 69 | self.horizontalLayout_4.addWidget(self.lineEdit_6) 70 | self.LBL7 = QtWidgets.QLabel(self.centralWidget) 71 | self.LBL7.setObjectName("LBL7") 72 | self.horizontalLayout_4.addWidget(self.LBL7) 73 | self.lineEdit_7 = QtWidgets.QLineEdit(self.centralWidget) 74 | self.lineEdit_7.setObjectName("lineEdit_7") 75 | self.horizontalLayout_4.addWidget(self.lineEdit_7) 76 | self.LBL8 = QtWidgets.QLabel(self.centralWidget) 77 | self.LBL8.setObjectName("LBL8") 78 | self.horizontalLayout_4.addWidget(self.LBL8) 79 | self.lineEdit_8 = QtWidgets.QLineEdit(self.centralWidget) 80 | self.lineEdit_8.setObjectName("lineEdit_8") 81 | self.horizontalLayout_4.addWidget(self.lineEdit_8) 82 | self.LBL9 = QtWidgets.QLabel(self.centralWidget) 83 | self.LBL9.setObjectName("LBL9") 84 | self.horizontalLayout_4.addWidget(self.LBL9) 85 | self.lineEdit_15 = QtWidgets.QLineEdit(self.centralWidget) 86 | self.lineEdit_15.setObjectName("lineEdit_15") 87 | self.horizontalLayout_4.addWidget(self.lineEdit_15) 88 | self.LBL10 = QtWidgets.QLabel(self.centralWidget) 89 | self.LBL10.setObjectName("LBL10") 90 | self.horizontalLayout_4.addWidget(self.LBL10) 91 | self.lineEdit_9 = QtWidgets.QLineEdit(self.centralWidget) 92 | self.lineEdit_9.setObjectName("lineEdit_9") 93 | self.horizontalLayout_4.addWidget(self.lineEdit_9) 94 | self.LBL11 = QtWidgets.QLabel(self.centralWidget) 95 | self.LBL11.setObjectName("LBL11") 96 | self.horizontalLayout_4.addWidget(self.LBL11) 97 | self.lineEdit_13 = QtWidgets.QLineEdit(self.centralWidget) 98 | self.lineEdit_13.setObjectName("lineEdit_13") 99 | self.horizontalLayout_4.addWidget(self.lineEdit_13) 100 | self.LBL12 = QtWidgets.QLabel(self.centralWidget) 101 | self.LBL12.setObjectName("LBL12") 102 | self.horizontalLayout_4.addWidget(self.LBL12) 103 | self.lineEdit_14 = QtWidgets.QLineEdit(self.centralWidget) 104 | self.lineEdit_14.setObjectName("lineEdit_14") 105 | self.horizontalLayout_4.addWidget(self.lineEdit_14) 106 | self.LBL13 = QtWidgets.QLabel(self.centralWidget) 107 | self.LBL13.setObjectName("LBL13") 108 | self.horizontalLayout_4.addWidget(self.LBL13) 109 | self.lineEdit_12 = QtWidgets.QLineEdit(self.centralWidget) 110 | self.lineEdit_12.setObjectName("lineEdit_12") 111 | self.horizontalLayout_4.addWidget(self.lineEdit_12) 112 | self.LBL14 = QtWidgets.QLabel(self.centralWidget) 113 | self.LBL14.setObjectName("LBL14") 114 | self.horizontalLayout_4.addWidget(self.LBL14) 115 | self.lineEdit_11 = QtWidgets.QLineEdit(self.centralWidget) 116 | self.lineEdit_11.setObjectName("lineEdit_11") 117 | self.horizontalLayout_4.addWidget(self.lineEdit_11) 118 | self.LBL15 = QtWidgets.QLabel(self.centralWidget) 119 | self.LBL15.setObjectName("LBL15") 120 | self.horizontalLayout_4.addWidget(self.LBL15) 121 | self.lineEdit_10 = QtWidgets.QLineEdit(self.centralWidget) 122 | self.lineEdit_10.setObjectName("lineEdit_10") 123 | self.horizontalLayout_4.addWidget(self.lineEdit_10) 124 | self.verticalLayout_4.addLayout(self.horizontalLayout_4) 125 | self.horizontalLayout_2 = QtWidgets.QHBoxLayout() 126 | self.horizontalLayout_2.setSpacing(6) 127 | self.horizontalLayout_2.setObjectName("horizontalLayout_2") 128 | self.CH1 = QtWidgets.QCheckBox(self.centralWidget) 129 | self.CH1.setChecked(True) 130 | self.CH1.setObjectName("CH1") 131 | self.horizontalLayout_2.addWidget(self.CH1) 132 | self.CH2 = QtWidgets.QCheckBox(self.centralWidget) 133 | self.CH2.setChecked(True) 134 | self.CH2.setObjectName("CH2") 135 | self.horizontalLayout_2.addWidget(self.CH2) 136 | self.CH3 = QtWidgets.QCheckBox(self.centralWidget) 137 | self.CH3.setObjectName("CH3") 138 | self.horizontalLayout_2.addWidget(self.CH3) 139 | self.CH4 = QtWidgets.QCheckBox(self.centralWidget) 140 | self.CH4.setObjectName("CH4") 141 | self.horizontalLayout_2.addWidget(self.CH4) 142 | self.CH5 = QtWidgets.QCheckBox(self.centralWidget) 143 | self.CH5.setObjectName("CH5") 144 | self.horizontalLayout_2.addWidget(self.CH5) 145 | self.CH6 = QtWidgets.QCheckBox(self.centralWidget) 146 | self.CH6.setObjectName("CH6") 147 | self.horizontalLayout_2.addWidget(self.CH6) 148 | self.CH7 = QtWidgets.QCheckBox(self.centralWidget) 149 | self.CH7.setObjectName("CH7") 150 | self.horizontalLayout_2.addWidget(self.CH7) 151 | self.CH8 = QtWidgets.QCheckBox(self.centralWidget) 152 | self.CH8.setObjectName("CH8") 153 | self.horizontalLayout_2.addWidget(self.CH8) 154 | self.CH9 = QtWidgets.QCheckBox(self.centralWidget) 155 | self.CH9.setObjectName("CH9") 156 | self.horizontalLayout_2.addWidget(self.CH9) 157 | self.CH20 = QtWidgets.QCheckBox(self.centralWidget) 158 | self.CH20.setObjectName("CH20") 159 | self.horizontalLayout_2.addWidget(self.CH20) 160 | self.CH10 = QtWidgets.QCheckBox(self.centralWidget) 161 | self.CH10.setObjectName("CH10") 162 | self.horizontalLayout_2.addWidget(self.CH10) 163 | self.CH11 = QtWidgets.QCheckBox(self.centralWidget) 164 | self.CH11.setObjectName("CH11") 165 | self.horizontalLayout_2.addWidget(self.CH11) 166 | self.CH12 = QtWidgets.QCheckBox(self.centralWidget) 167 | self.CH12.setObjectName("CH12") 168 | self.horizontalLayout_2.addWidget(self.CH12) 169 | self.CH13 = QtWidgets.QCheckBox(self.centralWidget) 170 | self.CH13.setObjectName("CH13") 171 | self.horizontalLayout_2.addWidget(self.CH13) 172 | self.CH14 = QtWidgets.QCheckBox(self.centralWidget) 173 | self.CH14.setObjectName("CH14") 174 | self.horizontalLayout_2.addWidget(self.CH14) 175 | self.CH15 = QtWidgets.QCheckBox(self.centralWidget) 176 | self.CH15.setObjectName("CH15") 177 | self.horizontalLayout_2.addWidget(self.CH15) 178 | self.CH16 = QtWidgets.QCheckBox(self.centralWidget) 179 | self.CH16.setObjectName("CH16") 180 | self.horizontalLayout_2.addWidget(self.CH16) 181 | self.CH17 = QtWidgets.QCheckBox(self.centralWidget) 182 | self.CH17.setObjectName("CH17") 183 | self.horizontalLayout_2.addWidget(self.CH17) 184 | self.CH18 = QtWidgets.QCheckBox(self.centralWidget) 185 | self.CH18.setObjectName("CH18") 186 | self.horizontalLayout_2.addWidget(self.CH18) 187 | self.CH19 = QtWidgets.QCheckBox(self.centralWidget) 188 | self.CH19.setObjectName("CH19") 189 | self.horizontalLayout_2.addWidget(self.CH19) 190 | self.verticalLayout_4.addLayout(self.horizontalLayout_2) 191 | self.horizontalLayout_14 = QtWidgets.QHBoxLayout() 192 | self.horizontalLayout_14.setSpacing(6) 193 | self.horizontalLayout_14.setObjectName("horizontalLayout_14") 194 | self.RCVAREA = QtWidgets.QTextBrowser(self.centralWidget) 195 | self.RCVAREA.setMinimumSize(QtCore.QSize(0, 120)) 196 | self.RCVAREA.setMaximumSize(QtCore.QSize(16777215, 360)) 197 | self.RCVAREA.setObjectName("RCVAREA") 198 | self.horizontalLayout_14.addWidget(self.RCVAREA) 199 | self.verticalLayout_4.addLayout(self.horizontalLayout_14) 200 | self.horizontalLayout_6 = QtWidgets.QHBoxLayout() 201 | self.horizontalLayout_6.setSpacing(6) 202 | self.horizontalLayout_6.setObjectName("horizontalLayout_6") 203 | self.sendmulcom = QtWidgets.QTextEdit(self.centralWidget) 204 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed) 205 | sizePolicy.setHorizontalStretch(0) 206 | sizePolicy.setVerticalStretch(0) 207 | sizePolicy.setHeightForWidth(self.sendmulcom.sizePolicy().hasHeightForWidth()) 208 | self.sendmulcom.setSizePolicy(sizePolicy) 209 | self.sendmulcom.setMaximumSize(QtCore.QSize(16777215, 16777215)) 210 | self.sendmulcom.setObjectName("sendmulcom") 211 | self.horizontalLayout_6.addWidget(self.sendmulcom) 212 | self.verticalLayout_3 = QtWidgets.QVBoxLayout() 213 | self.verticalLayout_3.setSpacing(6) 214 | self.verticalLayout_3.setObjectName("verticalLayout_3") 215 | self.HEXRCV = QtWidgets.QCheckBox(self.centralWidget) 216 | self.HEXRCV.setObjectName("HEXRCV") 217 | self.verticalLayout_3.addWidget(self.HEXRCV) 218 | self.HEXSND = QtWidgets.QCheckBox(self.centralWidget) 219 | self.HEXSND.setObjectName("HEXSND") 220 | self.verticalLayout_3.addWidget(self.HEXSND) 221 | self.horizontalLayout_8 = QtWidgets.QHBoxLayout() 222 | self.horizontalLayout_8.setSpacing(6) 223 | self.horizontalLayout_8.setObjectName("horizontalLayout_8") 224 | self.periodsend = QtWidgets.QCheckBox(self.centralWidget) 225 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) 226 | sizePolicy.setHorizontalStretch(0) 227 | sizePolicy.setVerticalStretch(0) 228 | sizePolicy.setHeightForWidth(self.periodsend.sizePolicy().hasHeightForWidth()) 229 | self.periodsend.setSizePolicy(sizePolicy) 230 | self.periodsend.setObjectName("periodsend") 231 | self.horizontalLayout_8.addWidget(self.periodsend) 232 | self.lineEdit_16 = QtWidgets.QLineEdit(self.centralWidget) 233 | self.lineEdit_16.setMaximumSize(QtCore.QSize(60, 20)) 234 | self.lineEdit_16.setObjectName("lineEdit_16") 235 | self.horizontalLayout_8.addWidget(self.lineEdit_16) 236 | self.verticalLayout_3.addLayout(self.horizontalLayout_8) 237 | self.BTNSEND = QtWidgets.QPushButton(self.centralWidget) 238 | self.BTNSEND.setObjectName("BTNSEND") 239 | self.verticalLayout_3.addWidget(self.BTNSEND) 240 | self.horizontalLayout_6.addLayout(self.verticalLayout_3) 241 | self.verticalLayout_2 = QtWidgets.QVBoxLayout() 242 | self.verticalLayout_2.setSpacing(6) 243 | self.verticalLayout_2.setObjectName("verticalLayout_2") 244 | self.horizontalLayout_5 = QtWidgets.QHBoxLayout() 245 | self.horizontalLayout_5.setSpacing(6) 246 | self.horizontalLayout_5.setObjectName("horizontalLayout_5") 247 | self.lineEdit_17 = QtWidgets.QLineEdit(self.centralWidget) 248 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) 249 | sizePolicy.setHorizontalStretch(0) 250 | sizePolicy.setVerticalStretch(0) 251 | sizePolicy.setHeightForWidth(self.lineEdit_17.sizePolicy().hasHeightForWidth()) 252 | self.lineEdit_17.setSizePolicy(sizePolicy) 253 | self.lineEdit_17.setObjectName("lineEdit_17") 254 | self.horizontalLayout_5.addWidget(self.lineEdit_17) 255 | self.pushButton = QtWidgets.QPushButton(self.centralWidget) 256 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) 257 | sizePolicy.setHorizontalStretch(0) 258 | sizePolicy.setVerticalStretch(0) 259 | sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth()) 260 | self.pushButton.setSizePolicy(sizePolicy) 261 | self.pushButton.setMaximumSize(QtCore.QSize(60, 20)) 262 | self.pushButton.setIconSize(QtCore.QSize(16, 16)) 263 | self.pushButton.setObjectName("pushButton") 264 | self.horizontalLayout_5.addWidget(self.pushButton) 265 | self.verticalLayout_2.addLayout(self.horizontalLayout_5) 266 | self.horizontalLayout_7 = QtWidgets.QHBoxLayout() 267 | self.horizontalLayout_7.setSpacing(6) 268 | self.horizontalLayout_7.setObjectName("horizontalLayout_7") 269 | self.lineEdit_18 = QtWidgets.QLineEdit(self.centralWidget) 270 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) 271 | sizePolicy.setHorizontalStretch(0) 272 | sizePolicy.setVerticalStretch(0) 273 | sizePolicy.setHeightForWidth(self.lineEdit_18.sizePolicy().hasHeightForWidth()) 274 | self.lineEdit_18.setSizePolicy(sizePolicy) 275 | self.lineEdit_18.setObjectName("lineEdit_18") 276 | self.horizontalLayout_7.addWidget(self.lineEdit_18) 277 | self.pushButton_2 = QtWidgets.QPushButton(self.centralWidget) 278 | self.pushButton_2.setMaximumSize(QtCore.QSize(60, 20)) 279 | self.pushButton_2.setObjectName("pushButton_2") 280 | self.horizontalLayout_7.addWidget(self.pushButton_2) 281 | self.verticalLayout_2.addLayout(self.horizontalLayout_7) 282 | self.horizontalLayout_9 = QtWidgets.QHBoxLayout() 283 | self.horizontalLayout_9.setSpacing(6) 284 | self.horizontalLayout_9.setObjectName("horizontalLayout_9") 285 | self.lineEdit_19 = QtWidgets.QLineEdit(self.centralWidget) 286 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) 287 | sizePolicy.setHorizontalStretch(0) 288 | sizePolicy.setVerticalStretch(0) 289 | sizePolicy.setHeightForWidth(self.lineEdit_19.sizePolicy().hasHeightForWidth()) 290 | self.lineEdit_19.setSizePolicy(sizePolicy) 291 | self.lineEdit_19.setObjectName("lineEdit_19") 292 | self.horizontalLayout_9.addWidget(self.lineEdit_19) 293 | self.pushButton_3 = QtWidgets.QPushButton(self.centralWidget) 294 | self.pushButton_3.setMaximumSize(QtCore.QSize(60, 20)) 295 | self.pushButton_3.setObjectName("pushButton_3") 296 | self.horizontalLayout_9.addWidget(self.pushButton_3) 297 | self.verticalLayout_2.addLayout(self.horizontalLayout_9) 298 | self.horizontalLayout_10 = QtWidgets.QHBoxLayout() 299 | self.horizontalLayout_10.setSpacing(6) 300 | self.horizontalLayout_10.setObjectName("horizontalLayout_10") 301 | self.lineEdit_20 = QtWidgets.QLineEdit(self.centralWidget) 302 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) 303 | sizePolicy.setHorizontalStretch(0) 304 | sizePolicy.setVerticalStretch(0) 305 | sizePolicy.setHeightForWidth(self.lineEdit_20.sizePolicy().hasHeightForWidth()) 306 | self.lineEdit_20.setSizePolicy(sizePolicy) 307 | self.lineEdit_20.setObjectName("lineEdit_20") 308 | self.horizontalLayout_10.addWidget(self.lineEdit_20) 309 | self.pushButton_4 = QtWidgets.QPushButton(self.centralWidget) 310 | self.pushButton_4.setMaximumSize(QtCore.QSize(60, 20)) 311 | self.pushButton_4.setObjectName("pushButton_4") 312 | self.horizontalLayout_10.addWidget(self.pushButton_4) 313 | self.verticalLayout_2.addLayout(self.horizontalLayout_10) 314 | self.horizontalLayout_11 = QtWidgets.QHBoxLayout() 315 | self.horizontalLayout_11.setSpacing(6) 316 | self.horizontalLayout_11.setObjectName("horizontalLayout_11") 317 | self.lineEdit_21 = QtWidgets.QLineEdit(self.centralWidget) 318 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) 319 | sizePolicy.setHorizontalStretch(0) 320 | sizePolicy.setVerticalStretch(0) 321 | sizePolicy.setHeightForWidth(self.lineEdit_21.sizePolicy().hasHeightForWidth()) 322 | self.lineEdit_21.setSizePolicy(sizePolicy) 323 | self.lineEdit_21.setObjectName("lineEdit_21") 324 | self.horizontalLayout_11.addWidget(self.lineEdit_21) 325 | self.pushButton_5 = QtWidgets.QPushButton(self.centralWidget) 326 | self.pushButton_5.setMaximumSize(QtCore.QSize(60, 20)) 327 | self.pushButton_5.setObjectName("pushButton_5") 328 | self.horizontalLayout_11.addWidget(self.pushButton_5) 329 | self.verticalLayout_2.addLayout(self.horizontalLayout_11) 330 | self.horizontalLayout_13 = QtWidgets.QHBoxLayout() 331 | self.horizontalLayout_13.setSpacing(6) 332 | self.horizontalLayout_13.setObjectName("horizontalLayout_13") 333 | self.lineEdit_22 = QtWidgets.QLineEdit(self.centralWidget) 334 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) 335 | sizePolicy.setHorizontalStretch(0) 336 | sizePolicy.setVerticalStretch(0) 337 | sizePolicy.setHeightForWidth(self.lineEdit_22.sizePolicy().hasHeightForWidth()) 338 | self.lineEdit_22.setSizePolicy(sizePolicy) 339 | self.lineEdit_22.setObjectName("lineEdit_22") 340 | self.horizontalLayout_13.addWidget(self.lineEdit_22) 341 | self.pushButton_6 = QtWidgets.QPushButton(self.centralWidget) 342 | self.pushButton_6.setMaximumSize(QtCore.QSize(60, 20)) 343 | self.pushButton_6.setObjectName("pushButton_6") 344 | self.horizontalLayout_13.addWidget(self.pushButton_6) 345 | self.verticalLayout_2.addLayout(self.horizontalLayout_13) 346 | self.horizontalLayout_6.addLayout(self.verticalLayout_2) 347 | self.verticalLayout_4.addLayout(self.horizontalLayout_6) 348 | self.horizontalLayout = QtWidgets.QHBoxLayout() 349 | self.horizontalLayout.setContentsMargins(10, -1, 10, -1) 350 | self.horizontalLayout.setSpacing(6) 351 | self.horizontalLayout.setObjectName("horizontalLayout") 352 | self.label = QtWidgets.QLabel(self.centralWidget) 353 | self.label.setObjectName("label") 354 | self.horizontalLayout.addWidget(self.label) 355 | self.cb_SerialPort = QtWidgets.QComboBox(self.centralWidget) 356 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum) 357 | sizePolicy.setHorizontalStretch(0) 358 | sizePolicy.setVerticalStretch(0) 359 | sizePolicy.setHeightForWidth(self.cb_SerialPort.sizePolicy().hasHeightForWidth()) 360 | self.cb_SerialPort.setSizePolicy(sizePolicy) 361 | self.cb_SerialPort.setObjectName("cb_SerialPort") 362 | self.horizontalLayout.addWidget(self.cb_SerialPort) 363 | self.label_2 = QtWidgets.QLabel(self.centralWidget) 364 | self.label_2.setObjectName("label_2") 365 | self.horizontalLayout.addWidget(self.label_2) 366 | self.cb_baudRate = QtWidgets.QComboBox(self.centralWidget) 367 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum) 368 | sizePolicy.setHorizontalStretch(0) 369 | sizePolicy.setVerticalStretch(0) 370 | sizePolicy.setHeightForWidth(self.cb_baudRate.sizePolicy().hasHeightForWidth()) 371 | self.cb_baudRate.setSizePolicy(sizePolicy) 372 | self.cb_baudRate.setEditable(True) 373 | self.cb_baudRate.setObjectName("cb_baudRate") 374 | self.cb_baudRate.addItem("") 375 | self.cb_baudRate.addItem("") 376 | self.cb_baudRate.addItem("") 377 | self.cb_baudRate.addItem("") 378 | self.cb_baudRate.addItem("") 379 | self.cb_baudRate.addItem("") 380 | self.cb_baudRate.addItem("") 381 | self.cb_baudRate.addItem("") 382 | self.cb_baudRate.addItem("") 383 | self.cb_baudRate.addItem("") 384 | self.cb_baudRate.addItem("") 385 | self.cb_baudRate.addItem("") 386 | self.horizontalLayout.addWidget(self.cb_baudRate) 387 | self.Connect_ADDR = QtWidgets.QLineEdit(self.centralWidget) 388 | self.Connect_ADDR.setEnabled(False) 389 | self.Connect_ADDR.setMinimumSize(QtCore.QSize(120, 0)) 390 | self.Connect_ADDR.setMaximumSize(QtCore.QSize(16777215, 16777215)) 391 | self.Connect_ADDR.setReadOnly(False) 392 | self.Connect_ADDR.setObjectName("Connect_ADDR") 393 | self.horizontalLayout.addWidget(self.Connect_ADDR) 394 | self.btn_OpenSerial = QtWidgets.QPushButton(self.centralWidget) 395 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) 396 | sizePolicy.setHorizontalStretch(0) 397 | sizePolicy.setVerticalStretch(0) 398 | sizePolicy.setHeightForWidth(self.btn_OpenSerial.sizePolicy().hasHeightForWidth()) 399 | self.btn_OpenSerial.setSizePolicy(sizePolicy) 400 | self.btn_OpenSerial.setObjectName("btn_OpenSerial") 401 | self.horizontalLayout.addWidget(self.btn_OpenSerial) 402 | self.btn_StopDis = QtWidgets.QPushButton(self.centralWidget) 403 | sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum) 404 | sizePolicy.setHorizontalStretch(0) 405 | sizePolicy.setVerticalStretch(0) 406 | sizePolicy.setHeightForWidth(self.btn_StopDis.sizePolicy().hasHeightForWidth()) 407 | self.btn_StopDis.setSizePolicy(sizePolicy) 408 | self.btn_StopDis.setObjectName("btn_StopDis") 409 | self.horizontalLayout.addWidget(self.btn_StopDis) 410 | self.btn_ClearSeries = QtWidgets.QPushButton(self.centralWidget) 411 | self.btn_ClearSeries.setObjectName("btn_ClearSeries") 412 | self.horizontalLayout.addWidget(self.btn_ClearSeries) 413 | self.btn_SetXSize = QtWidgets.QPushButton(self.centralWidget) 414 | self.btn_SetXSize.setObjectName("btn_SetXSize") 415 | self.horizontalLayout.addWidget(self.btn_SetXSize) 416 | self.leXSize = QtWidgets.QLineEdit(self.centralWidget) 417 | self.leXSize.setMaxLength(5) 418 | self.leXSize.setFrame(True) 419 | self.leXSize.setCursorMoveStyle(QtCore.Qt.LogicalMoveStyle) 420 | self.leXSize.setClearButtonEnabled(False) 421 | self.leXSize.setObjectName("leXSize") 422 | self.horizontalLayout.addWidget(self.leXSize) 423 | self.checkBoxXAuto = QtWidgets.QCheckBox(self.centralWidget) 424 | self.checkBoxXAuto.setChecked(True) 425 | self.checkBoxXAuto.setObjectName("checkBoxXAuto") 426 | self.horizontalLayout.addWidget(self.checkBoxXAuto) 427 | self.checkBoxYAuto = QtWidgets.QCheckBox(self.centralWidget) 428 | self.checkBoxYAuto.setChecked(True) 429 | self.checkBoxYAuto.setObjectName("checkBoxYAuto") 430 | self.horizontalLayout.addWidget(self.checkBoxYAuto) 431 | spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) 432 | self.horizontalLayout.addItem(spacerItem) 433 | self.btn_help = QtWidgets.QPushButton(self.centralWidget) 434 | self.btn_help.setObjectName("btn_help") 435 | self.horizontalLayout.addWidget(self.btn_help) 436 | self.horizontalLayout.setStretch(0, 1) 437 | self.horizontalLayout.setStretch(1, 2) 438 | self.horizontalLayout.setStretch(2, 1) 439 | self.horizontalLayout.setStretch(3, 2) 440 | self.horizontalLayout.setStretch(5, 2) 441 | self.horizontalLayout.setStretch(6, 2) 442 | self.horizontalLayout.setStretch(7, 2) 443 | self.horizontalLayout.setStretch(8, 2) 444 | self.horizontalLayout.setStretch(9, 1) 445 | self.horizontalLayout.setStretch(10, 1) 446 | self.horizontalLayout.setStretch(11, 1) 447 | self.horizontalLayout.setStretch(12, 10) 448 | self.verticalLayout_4.addLayout(self.horizontalLayout) 449 | MainWindow.setCentralWidget(self.centralWidget) 450 | self.menuBar = QtWidgets.QMenuBar(MainWindow) 451 | self.menuBar.setGeometry(QtCore.QRect(0, 0, 1185, 26)) 452 | self.menuBar.setObjectName("menuBar") 453 | self.menu = QtWidgets.QMenu(self.menuBar) 454 | self.menu.setObjectName("menu") 455 | MainWindow.setMenuBar(self.menuBar) 456 | self.statusBar = QtWidgets.QStatusBar(MainWindow) 457 | self.statusBar.setObjectName("statusBar") 458 | MainWindow.setStatusBar(self.statusBar) 459 | self.action_save = QtWidgets.QAction(MainWindow) 460 | self.action_save.setObjectName("action_save") 461 | self.action_load = QtWidgets.QAction(MainWindow) 462 | self.action_load.setObjectName("action_load") 463 | self.menu.addAction(self.action_save) 464 | self.menu.addAction(self.action_load) 465 | self.menuBar.addAction(self.menu.menuAction()) 466 | 467 | self.retranslateUi(MainWindow) 468 | self.cb_baudRate.setCurrentIndex(0) 469 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 470 | 471 | def retranslateUi(self, MainWindow): 472 | _translate = QtCore.QCoreApplication.translate 473 | MainWindow.setWindowTitle(_translate("MainWindow", "串口示波器")) 474 | self.LBL1.setText(_translate("MainWindow", "V1")) 475 | self.LBL2.setText(_translate("MainWindow", "V2")) 476 | self.LBL3.setText(_translate("MainWindow", "V3")) 477 | self.LBL4.setText(_translate("MainWindow", "V4")) 478 | self.LBL5.setText(_translate("MainWindow", "V5")) 479 | self.LBL6.setText(_translate("MainWindow", "V6")) 480 | self.LBL7.setText(_translate("MainWindow", "V7")) 481 | self.LBL8.setText(_translate("MainWindow", "V8")) 482 | self.LBL9.setText(_translate("MainWindow", "V9")) 483 | self.LBL10.setText(_translate("MainWindow", "V10")) 484 | self.LBL11.setText(_translate("MainWindow", "V11")) 485 | self.LBL12.setText(_translate("MainWindow", "V12")) 486 | self.LBL13.setText(_translate("MainWindow", "V13")) 487 | self.LBL14.setText(_translate("MainWindow", "V14")) 488 | self.LBL15.setText(_translate("MainWindow", "V15")) 489 | self.CH1.setText(_translate("MainWindow", "CH")) 490 | self.CH2.setText(_translate("MainWindow", "CH")) 491 | self.CH3.setText(_translate("MainWindow", "CH")) 492 | self.CH4.setText(_translate("MainWindow", "CH")) 493 | self.CH5.setText(_translate("MainWindow", "CH")) 494 | self.CH6.setText(_translate("MainWindow", "CH")) 495 | self.CH7.setText(_translate("MainWindow", "CH")) 496 | self.CH8.setText(_translate("MainWindow", "CH")) 497 | self.CH9.setText(_translate("MainWindow", "CH")) 498 | self.CH20.setText(_translate("MainWindow", "CH")) 499 | self.CH10.setText(_translate("MainWindow", "CH")) 500 | self.CH11.setText(_translate("MainWindow", "CH")) 501 | self.CH12.setText(_translate("MainWindow", "CH")) 502 | self.CH13.setText(_translate("MainWindow", "CH")) 503 | self.CH14.setText(_translate("MainWindow", "CH")) 504 | self.CH15.setText(_translate("MainWindow", "CH")) 505 | self.CH16.setText(_translate("MainWindow", "CH")) 506 | self.CH17.setText(_translate("MainWindow", "CH")) 507 | self.CH18.setText(_translate("MainWindow", "CH")) 508 | self.CH19.setText(_translate("MainWindow", "CH")) 509 | self.HEXRCV.setText(_translate("MainWindow", "16进制接收")) 510 | self.HEXSND.setText(_translate("MainWindow", "16进制发送")) 511 | self.periodsend.setText(_translate("MainWindow", "定时发送")) 512 | self.lineEdit_16.setText(_translate("MainWindow", "1000")) 513 | self.BTNSEND.setText(_translate("MainWindow", "发送")) 514 | self.pushButton.setText(_translate("MainWindow", "DATA1")) 515 | self.pushButton_2.setText(_translate("MainWindow", "DATA2")) 516 | self.pushButton_3.setText(_translate("MainWindow", "DATA3")) 517 | self.pushButton_4.setText(_translate("MainWindow", "DATA4")) 518 | self.pushButton_5.setText(_translate("MainWindow", "DATA5")) 519 | self.pushButton_6.setText(_translate("MainWindow", "DATA6")) 520 | self.label.setText(_translate("MainWindow", "通信方式")) 521 | self.label_2.setText(_translate("MainWindow", "波特率/端口")) 522 | self.cb_baudRate.setItemText(0, _translate("MainWindow", "2400")) 523 | self.cb_baudRate.setItemText(1, _translate("MainWindow", "4800")) 524 | self.cb_baudRate.setItemText(2, _translate("MainWindow", "9600")) 525 | self.cb_baudRate.setItemText(3, _translate("MainWindow", "19200")) 526 | self.cb_baudRate.setItemText(4, _translate("MainWindow", "38400")) 527 | self.cb_baudRate.setItemText(5, _translate("MainWindow", "57600")) 528 | self.cb_baudRate.setItemText(6, _translate("MainWindow", "76800")) 529 | self.cb_baudRate.setItemText(7, _translate("MainWindow", "115200")) 530 | self.cb_baudRate.setItemText(8, _translate("MainWindow", "153600")) 531 | self.cb_baudRate.setItemText(9, _translate("MainWindow", "230400")) 532 | self.cb_baudRate.setItemText(10, _translate("MainWindow", "500000")) 533 | self.cb_baudRate.setItemText(11, _translate("MainWindow", "1000000")) 534 | self.btn_OpenSerial.setText(_translate("MainWindow", "开启")) 535 | self.btn_StopDis.setText(_translate("MainWindow", "开始更新")) 536 | self.btn_ClearSeries.setText(_translate("MainWindow", "清除曲线")) 537 | self.btn_SetXSize.setText(_translate("MainWindow", "设置X范围")) 538 | self.leXSize.setText(_translate("MainWindow", "200")) 539 | self.checkBoxXAuto.setText(_translate("MainWindow", "X自动")) 540 | self.checkBoxYAuto.setText(_translate("MainWindow", "Y自动")) 541 | self.btn_help.setText(_translate("MainWindow", "帮助")) 542 | self.menu.setTitle(_translate("MainWindow", "菜单")) 543 | self.action_save.setText(_translate("MainWindow", "保存数据")) 544 | self.action_load.setText(_translate("MainWindow", "载入数据")) 545 | from PyQt5 import QtChart 546 | import resource_rc 547 | -------------------------------------------------------------------------------- /Serialgraph/ui_mainwindow.h: -------------------------------------------------------------------------------- 1 | /******************************************************************************** 2 | ** Form generated from reading UI file 'mainwindow.ui' 3 | ** 4 | ** Created by: Qt User Interface Compiler version 5.14.2 5 | ** 6 | ** WARNING! All changes made in this file will be lost when recompiling UI file! 7 | ********************************************************************************/ 8 | 9 | #ifndef UI_MAINWINDOW_H 10 | #define UI_MAINWINDOW_H 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include "qchartview.h" 32 | 33 | QT_BEGIN_NAMESPACE 34 | 35 | class Ui_MainWindow 36 | { 37 | public: 38 | QAction *action_save; 39 | QAction *action_load; 40 | QWidget *centralWidget; 41 | QVBoxLayout *verticalLayout_4; 42 | QtCharts::QChartView *chartView; 43 | QHBoxLayout *horizontalLayout_4; 44 | QLabel *LBL1; 45 | QLineEdit *lineEdit_3; 46 | QLabel *LBL2; 47 | QLineEdit *lineEdit_2; 48 | QLabel *LBL3; 49 | QLineEdit *lineEdit; 50 | QLabel *LBL4; 51 | QLineEdit *lineEdit_5; 52 | QLabel *LBL5; 53 | QLineEdit *lineEdit_4; 54 | QLabel *LBL6; 55 | QLineEdit *lineEdit_6; 56 | QLabel *LBL7; 57 | QLineEdit *lineEdit_7; 58 | QLabel *LBL8; 59 | QLineEdit *lineEdit_8; 60 | QLabel *LBL9; 61 | QLineEdit *lineEdit_15; 62 | QLabel *LBL10; 63 | QLineEdit *lineEdit_9; 64 | QLabel *LBL11; 65 | QLineEdit *lineEdit_13; 66 | QLabel *LBL12; 67 | QLineEdit *lineEdit_14; 68 | QLabel *LBL13; 69 | QLineEdit *lineEdit_12; 70 | QLabel *LBL14; 71 | QLineEdit *lineEdit_11; 72 | QLabel *LBL15; 73 | QLineEdit *lineEdit_10; 74 | QHBoxLayout *horizontalLayout_2; 75 | QCheckBox *CH1; 76 | QCheckBox *CH2; 77 | QCheckBox *CH3; 78 | QCheckBox *CH4; 79 | QCheckBox *CH5; 80 | QCheckBox *CH6; 81 | QCheckBox *CH7; 82 | QCheckBox *CH8; 83 | QCheckBox *CH9; 84 | QCheckBox *CH20; 85 | QCheckBox *CH10; 86 | QCheckBox *CH11; 87 | QCheckBox *CH12; 88 | QCheckBox *CH13; 89 | QCheckBox *CH14; 90 | QCheckBox *CH15; 91 | QCheckBox *CH16; 92 | QCheckBox *CH17; 93 | QCheckBox *CH18; 94 | QCheckBox *CH19; 95 | QHBoxLayout *horizontalLayout_14; 96 | QTextBrowser *RCVAREA; 97 | QHBoxLayout *horizontalLayout_6; 98 | QTextEdit *sendmulcom; 99 | QVBoxLayout *verticalLayout_3; 100 | QCheckBox *HEXRCV; 101 | QCheckBox *HEXSND; 102 | QHBoxLayout *horizontalLayout_8; 103 | QCheckBox *periodsend; 104 | QLineEdit *lineEdit_16; 105 | QPushButton *BTNSEND; 106 | QVBoxLayout *verticalLayout_2; 107 | QHBoxLayout *horizontalLayout_5; 108 | QLineEdit *lineEdit_17; 109 | QPushButton *pushButton; 110 | QHBoxLayout *horizontalLayout_7; 111 | QLineEdit *lineEdit_18; 112 | QPushButton *pushButton_2; 113 | QHBoxLayout *horizontalLayout_9; 114 | QLineEdit *lineEdit_19; 115 | QPushButton *pushButton_3; 116 | QHBoxLayout *horizontalLayout_10; 117 | QLineEdit *lineEdit_20; 118 | QPushButton *pushButton_4; 119 | QHBoxLayout *horizontalLayout_11; 120 | QLineEdit *lineEdit_21; 121 | QPushButton *pushButton_5; 122 | QHBoxLayout *horizontalLayout_13; 123 | QLineEdit *lineEdit_22; 124 | QPushButton *pushButton_6; 125 | QHBoxLayout *horizontalLayout; 126 | QLabel *label; 127 | QComboBox *cb_SerialPort; 128 | QLabel *label_2; 129 | QComboBox *cb_baudRate; 130 | QLineEdit *Connect_ADDR; 131 | QPushButton *btn_OpenSerial; 132 | QPushButton *btn_StopDis; 133 | QPushButton *btn_ClearSeries; 134 | QPushButton *btn_SetXSize; 135 | QLineEdit *leXSize; 136 | QCheckBox *checkBoxXAuto; 137 | QCheckBox *checkBoxYAuto; 138 | QSpacerItem *horizontalSpacer; 139 | QPushButton *btn_help; 140 | QMenuBar *menuBar; 141 | QMenu *menu; 142 | QStatusBar *statusBar; 143 | 144 | void setupUi(QMainWindow *MainWindow) 145 | { 146 | if (MainWindow->objectName().isEmpty()) 147 | MainWindow->setObjectName(QString::fromUtf8("MainWindow")); 148 | MainWindow->resize(1185, 804); 149 | QIcon icon; 150 | icon.addFile(QString::fromUtf8(":/Resources/logo.png"), QSize(), QIcon::Normal, QIcon::Off); 151 | MainWindow->setWindowIcon(icon); 152 | action_save = new QAction(MainWindow); 153 | action_save->setObjectName(QString::fromUtf8("action_save")); 154 | action_load = new QAction(MainWindow); 155 | action_load->setObjectName(QString::fromUtf8("action_load")); 156 | centralWidget = new QWidget(MainWindow); 157 | centralWidget->setObjectName(QString::fromUtf8("centralWidget")); 158 | verticalLayout_4 = new QVBoxLayout(centralWidget); 159 | verticalLayout_4->setSpacing(6); 160 | verticalLayout_4->setContentsMargins(11, 11, 11, 11); 161 | verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4")); 162 | chartView = new QtCharts::QChartView(centralWidget); 163 | chartView->setObjectName(QString::fromUtf8("chartView")); 164 | chartView->setMinimumSize(QSize(0, 320)); 165 | 166 | verticalLayout_4->addWidget(chartView); 167 | 168 | horizontalLayout_4 = new QHBoxLayout(); 169 | horizontalLayout_4->setSpacing(6); 170 | horizontalLayout_4->setObjectName(QString::fromUtf8("horizontalLayout_4")); 171 | LBL1 = new QLabel(centralWidget); 172 | LBL1->setObjectName(QString::fromUtf8("LBL1")); 173 | 174 | horizontalLayout_4->addWidget(LBL1); 175 | 176 | lineEdit_3 = new QLineEdit(centralWidget); 177 | lineEdit_3->setObjectName(QString::fromUtf8("lineEdit_3")); 178 | 179 | horizontalLayout_4->addWidget(lineEdit_3); 180 | 181 | LBL2 = new QLabel(centralWidget); 182 | LBL2->setObjectName(QString::fromUtf8("LBL2")); 183 | 184 | horizontalLayout_4->addWidget(LBL2); 185 | 186 | lineEdit_2 = new QLineEdit(centralWidget); 187 | lineEdit_2->setObjectName(QString::fromUtf8("lineEdit_2")); 188 | 189 | horizontalLayout_4->addWidget(lineEdit_2); 190 | 191 | LBL3 = new QLabel(centralWidget); 192 | LBL3->setObjectName(QString::fromUtf8("LBL3")); 193 | 194 | horizontalLayout_4->addWidget(LBL3); 195 | 196 | lineEdit = new QLineEdit(centralWidget); 197 | lineEdit->setObjectName(QString::fromUtf8("lineEdit")); 198 | 199 | horizontalLayout_4->addWidget(lineEdit); 200 | 201 | LBL4 = new QLabel(centralWidget); 202 | LBL4->setObjectName(QString::fromUtf8("LBL4")); 203 | 204 | horizontalLayout_4->addWidget(LBL4); 205 | 206 | lineEdit_5 = new QLineEdit(centralWidget); 207 | lineEdit_5->setObjectName(QString::fromUtf8("lineEdit_5")); 208 | 209 | horizontalLayout_4->addWidget(lineEdit_5); 210 | 211 | LBL5 = new QLabel(centralWidget); 212 | LBL5->setObjectName(QString::fromUtf8("LBL5")); 213 | 214 | horizontalLayout_4->addWidget(LBL5); 215 | 216 | lineEdit_4 = new QLineEdit(centralWidget); 217 | lineEdit_4->setObjectName(QString::fromUtf8("lineEdit_4")); 218 | 219 | horizontalLayout_4->addWidget(lineEdit_4); 220 | 221 | LBL6 = new QLabel(centralWidget); 222 | LBL6->setObjectName(QString::fromUtf8("LBL6")); 223 | 224 | horizontalLayout_4->addWidget(LBL6); 225 | 226 | lineEdit_6 = new QLineEdit(centralWidget); 227 | lineEdit_6->setObjectName(QString::fromUtf8("lineEdit_6")); 228 | 229 | horizontalLayout_4->addWidget(lineEdit_6); 230 | 231 | LBL7 = new QLabel(centralWidget); 232 | LBL7->setObjectName(QString::fromUtf8("LBL7")); 233 | 234 | horizontalLayout_4->addWidget(LBL7); 235 | 236 | lineEdit_7 = new QLineEdit(centralWidget); 237 | lineEdit_7->setObjectName(QString::fromUtf8("lineEdit_7")); 238 | 239 | horizontalLayout_4->addWidget(lineEdit_7); 240 | 241 | LBL8 = new QLabel(centralWidget); 242 | LBL8->setObjectName(QString::fromUtf8("LBL8")); 243 | 244 | horizontalLayout_4->addWidget(LBL8); 245 | 246 | lineEdit_8 = new QLineEdit(centralWidget); 247 | lineEdit_8->setObjectName(QString::fromUtf8("lineEdit_8")); 248 | 249 | horizontalLayout_4->addWidget(lineEdit_8); 250 | 251 | LBL9 = new QLabel(centralWidget); 252 | LBL9->setObjectName(QString::fromUtf8("LBL9")); 253 | 254 | horizontalLayout_4->addWidget(LBL9); 255 | 256 | lineEdit_15 = new QLineEdit(centralWidget); 257 | lineEdit_15->setObjectName(QString::fromUtf8("lineEdit_15")); 258 | 259 | horizontalLayout_4->addWidget(lineEdit_15); 260 | 261 | LBL10 = new QLabel(centralWidget); 262 | LBL10->setObjectName(QString::fromUtf8("LBL10")); 263 | 264 | horizontalLayout_4->addWidget(LBL10); 265 | 266 | lineEdit_9 = new QLineEdit(centralWidget); 267 | lineEdit_9->setObjectName(QString::fromUtf8("lineEdit_9")); 268 | 269 | horizontalLayout_4->addWidget(lineEdit_9); 270 | 271 | LBL11 = new QLabel(centralWidget); 272 | LBL11->setObjectName(QString::fromUtf8("LBL11")); 273 | 274 | horizontalLayout_4->addWidget(LBL11); 275 | 276 | lineEdit_13 = new QLineEdit(centralWidget); 277 | lineEdit_13->setObjectName(QString::fromUtf8("lineEdit_13")); 278 | 279 | horizontalLayout_4->addWidget(lineEdit_13); 280 | 281 | LBL12 = new QLabel(centralWidget); 282 | LBL12->setObjectName(QString::fromUtf8("LBL12")); 283 | 284 | horizontalLayout_4->addWidget(LBL12); 285 | 286 | lineEdit_14 = new QLineEdit(centralWidget); 287 | lineEdit_14->setObjectName(QString::fromUtf8("lineEdit_14")); 288 | 289 | horizontalLayout_4->addWidget(lineEdit_14); 290 | 291 | LBL13 = new QLabel(centralWidget); 292 | LBL13->setObjectName(QString::fromUtf8("LBL13")); 293 | 294 | horizontalLayout_4->addWidget(LBL13); 295 | 296 | lineEdit_12 = new QLineEdit(centralWidget); 297 | lineEdit_12->setObjectName(QString::fromUtf8("lineEdit_12")); 298 | 299 | horizontalLayout_4->addWidget(lineEdit_12); 300 | 301 | LBL14 = new QLabel(centralWidget); 302 | LBL14->setObjectName(QString::fromUtf8("LBL14")); 303 | 304 | horizontalLayout_4->addWidget(LBL14); 305 | 306 | lineEdit_11 = new QLineEdit(centralWidget); 307 | lineEdit_11->setObjectName(QString::fromUtf8("lineEdit_11")); 308 | 309 | horizontalLayout_4->addWidget(lineEdit_11); 310 | 311 | LBL15 = new QLabel(centralWidget); 312 | LBL15->setObjectName(QString::fromUtf8("LBL15")); 313 | 314 | horizontalLayout_4->addWidget(LBL15); 315 | 316 | lineEdit_10 = new QLineEdit(centralWidget); 317 | lineEdit_10->setObjectName(QString::fromUtf8("lineEdit_10")); 318 | 319 | horizontalLayout_4->addWidget(lineEdit_10); 320 | 321 | 322 | verticalLayout_4->addLayout(horizontalLayout_4); 323 | 324 | horizontalLayout_2 = new QHBoxLayout(); 325 | horizontalLayout_2->setSpacing(6); 326 | horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); 327 | CH1 = new QCheckBox(centralWidget); 328 | CH1->setObjectName(QString::fromUtf8("CH1")); 329 | CH1->setChecked(true); 330 | 331 | horizontalLayout_2->addWidget(CH1); 332 | 333 | CH2 = new QCheckBox(centralWidget); 334 | CH2->setObjectName(QString::fromUtf8("CH2")); 335 | CH2->setChecked(true); 336 | 337 | horizontalLayout_2->addWidget(CH2); 338 | 339 | CH3 = new QCheckBox(centralWidget); 340 | CH3->setObjectName(QString::fromUtf8("CH3")); 341 | 342 | horizontalLayout_2->addWidget(CH3); 343 | 344 | CH4 = new QCheckBox(centralWidget); 345 | CH4->setObjectName(QString::fromUtf8("CH4")); 346 | 347 | horizontalLayout_2->addWidget(CH4); 348 | 349 | CH5 = new QCheckBox(centralWidget); 350 | CH5->setObjectName(QString::fromUtf8("CH5")); 351 | 352 | horizontalLayout_2->addWidget(CH5); 353 | 354 | CH6 = new QCheckBox(centralWidget); 355 | CH6->setObjectName(QString::fromUtf8("CH6")); 356 | 357 | horizontalLayout_2->addWidget(CH6); 358 | 359 | CH7 = new QCheckBox(centralWidget); 360 | CH7->setObjectName(QString::fromUtf8("CH7")); 361 | 362 | horizontalLayout_2->addWidget(CH7); 363 | 364 | CH8 = new QCheckBox(centralWidget); 365 | CH8->setObjectName(QString::fromUtf8("CH8")); 366 | 367 | horizontalLayout_2->addWidget(CH8); 368 | 369 | CH9 = new QCheckBox(centralWidget); 370 | CH9->setObjectName(QString::fromUtf8("CH9")); 371 | 372 | horizontalLayout_2->addWidget(CH9); 373 | 374 | CH20 = new QCheckBox(centralWidget); 375 | CH20->setObjectName(QString::fromUtf8("CH20")); 376 | 377 | horizontalLayout_2->addWidget(CH20); 378 | 379 | CH10 = new QCheckBox(centralWidget); 380 | CH10->setObjectName(QString::fromUtf8("CH10")); 381 | 382 | horizontalLayout_2->addWidget(CH10); 383 | 384 | CH11 = new QCheckBox(centralWidget); 385 | CH11->setObjectName(QString::fromUtf8("CH11")); 386 | 387 | horizontalLayout_2->addWidget(CH11); 388 | 389 | CH12 = new QCheckBox(centralWidget); 390 | CH12->setObjectName(QString::fromUtf8("CH12")); 391 | 392 | horizontalLayout_2->addWidget(CH12); 393 | 394 | CH13 = new QCheckBox(centralWidget); 395 | CH13->setObjectName(QString::fromUtf8("CH13")); 396 | 397 | horizontalLayout_2->addWidget(CH13); 398 | 399 | CH14 = new QCheckBox(centralWidget); 400 | CH14->setObjectName(QString::fromUtf8("CH14")); 401 | 402 | horizontalLayout_2->addWidget(CH14); 403 | 404 | CH15 = new QCheckBox(centralWidget); 405 | CH15->setObjectName(QString::fromUtf8("CH15")); 406 | 407 | horizontalLayout_2->addWidget(CH15); 408 | 409 | CH16 = new QCheckBox(centralWidget); 410 | CH16->setObjectName(QString::fromUtf8("CH16")); 411 | 412 | horizontalLayout_2->addWidget(CH16); 413 | 414 | CH17 = new QCheckBox(centralWidget); 415 | CH17->setObjectName(QString::fromUtf8("CH17")); 416 | 417 | horizontalLayout_2->addWidget(CH17); 418 | 419 | CH18 = new QCheckBox(centralWidget); 420 | CH18->setObjectName(QString::fromUtf8("CH18")); 421 | 422 | horizontalLayout_2->addWidget(CH18); 423 | 424 | CH19 = new QCheckBox(centralWidget); 425 | CH19->setObjectName(QString::fromUtf8("CH19")); 426 | 427 | horizontalLayout_2->addWidget(CH19); 428 | 429 | 430 | verticalLayout_4->addLayout(horizontalLayout_2); 431 | 432 | horizontalLayout_14 = new QHBoxLayout(); 433 | horizontalLayout_14->setSpacing(6); 434 | horizontalLayout_14->setObjectName(QString::fromUtf8("horizontalLayout_14")); 435 | RCVAREA = new QTextBrowser(centralWidget); 436 | RCVAREA->setObjectName(QString::fromUtf8("RCVAREA")); 437 | RCVAREA->setMinimumSize(QSize(0, 120)); 438 | RCVAREA->setMaximumSize(QSize(16777215, 360)); 439 | 440 | horizontalLayout_14->addWidget(RCVAREA); 441 | 442 | 443 | verticalLayout_4->addLayout(horizontalLayout_14); 444 | 445 | horizontalLayout_6 = new QHBoxLayout(); 446 | horizontalLayout_6->setSpacing(6); 447 | horizontalLayout_6->setObjectName(QString::fromUtf8("horizontalLayout_6")); 448 | sendmulcom = new QTextEdit(centralWidget); 449 | sendmulcom->setObjectName(QString::fromUtf8("sendmulcom")); 450 | QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); 451 | sizePolicy.setHorizontalStretch(0); 452 | sizePolicy.setVerticalStretch(0); 453 | sizePolicy.setHeightForWidth(sendmulcom->sizePolicy().hasHeightForWidth()); 454 | sendmulcom->setSizePolicy(sizePolicy); 455 | sendmulcom->setMaximumSize(QSize(16777215, 16777215)); 456 | 457 | horizontalLayout_6->addWidget(sendmulcom); 458 | 459 | verticalLayout_3 = new QVBoxLayout(); 460 | verticalLayout_3->setSpacing(6); 461 | verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3")); 462 | HEXRCV = new QCheckBox(centralWidget); 463 | HEXRCV->setObjectName(QString::fromUtf8("HEXRCV")); 464 | 465 | verticalLayout_3->addWidget(HEXRCV); 466 | 467 | HEXSND = new QCheckBox(centralWidget); 468 | HEXSND->setObjectName(QString::fromUtf8("HEXSND")); 469 | 470 | verticalLayout_3->addWidget(HEXSND); 471 | 472 | horizontalLayout_8 = new QHBoxLayout(); 473 | horizontalLayout_8->setSpacing(6); 474 | horizontalLayout_8->setObjectName(QString::fromUtf8("horizontalLayout_8")); 475 | periodsend = new QCheckBox(centralWidget); 476 | periodsend->setObjectName(QString::fromUtf8("periodsend")); 477 | QSizePolicy sizePolicy1(QSizePolicy::Fixed, QSizePolicy::Fixed); 478 | sizePolicy1.setHorizontalStretch(0); 479 | sizePolicy1.setVerticalStretch(0); 480 | sizePolicy1.setHeightForWidth(periodsend->sizePolicy().hasHeightForWidth()); 481 | periodsend->setSizePolicy(sizePolicy1); 482 | 483 | horizontalLayout_8->addWidget(periodsend); 484 | 485 | lineEdit_16 = new QLineEdit(centralWidget); 486 | lineEdit_16->setObjectName(QString::fromUtf8("lineEdit_16")); 487 | lineEdit_16->setMaximumSize(QSize(60, 20)); 488 | 489 | horizontalLayout_8->addWidget(lineEdit_16); 490 | 491 | 492 | verticalLayout_3->addLayout(horizontalLayout_8); 493 | 494 | BTNSEND = new QPushButton(centralWidget); 495 | BTNSEND->setObjectName(QString::fromUtf8("BTNSEND")); 496 | 497 | verticalLayout_3->addWidget(BTNSEND); 498 | 499 | 500 | horizontalLayout_6->addLayout(verticalLayout_3); 501 | 502 | verticalLayout_2 = new QVBoxLayout(); 503 | verticalLayout_2->setSpacing(6); 504 | verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); 505 | horizontalLayout_5 = new QHBoxLayout(); 506 | horizontalLayout_5->setSpacing(6); 507 | horizontalLayout_5->setObjectName(QString::fromUtf8("horizontalLayout_5")); 508 | lineEdit_17 = new QLineEdit(centralWidget); 509 | lineEdit_17->setObjectName(QString::fromUtf8("lineEdit_17")); 510 | sizePolicy1.setHeightForWidth(lineEdit_17->sizePolicy().hasHeightForWidth()); 511 | lineEdit_17->setSizePolicy(sizePolicy1); 512 | 513 | horizontalLayout_5->addWidget(lineEdit_17); 514 | 515 | pushButton = new QPushButton(centralWidget); 516 | pushButton->setObjectName(QString::fromUtf8("pushButton")); 517 | sizePolicy1.setHeightForWidth(pushButton->sizePolicy().hasHeightForWidth()); 518 | pushButton->setSizePolicy(sizePolicy1); 519 | pushButton->setMaximumSize(QSize(60, 20)); 520 | pushButton->setIconSize(QSize(16, 16)); 521 | 522 | horizontalLayout_5->addWidget(pushButton); 523 | 524 | 525 | verticalLayout_2->addLayout(horizontalLayout_5); 526 | 527 | horizontalLayout_7 = new QHBoxLayout(); 528 | horizontalLayout_7->setSpacing(6); 529 | horizontalLayout_7->setObjectName(QString::fromUtf8("horizontalLayout_7")); 530 | lineEdit_18 = new QLineEdit(centralWidget); 531 | lineEdit_18->setObjectName(QString::fromUtf8("lineEdit_18")); 532 | sizePolicy1.setHeightForWidth(lineEdit_18->sizePolicy().hasHeightForWidth()); 533 | lineEdit_18->setSizePolicy(sizePolicy1); 534 | 535 | horizontalLayout_7->addWidget(lineEdit_18); 536 | 537 | pushButton_2 = new QPushButton(centralWidget); 538 | pushButton_2->setObjectName(QString::fromUtf8("pushButton_2")); 539 | pushButton_2->setMaximumSize(QSize(60, 20)); 540 | 541 | horizontalLayout_7->addWidget(pushButton_2); 542 | 543 | 544 | verticalLayout_2->addLayout(horizontalLayout_7); 545 | 546 | horizontalLayout_9 = new QHBoxLayout(); 547 | horizontalLayout_9->setSpacing(6); 548 | horizontalLayout_9->setObjectName(QString::fromUtf8("horizontalLayout_9")); 549 | lineEdit_19 = new QLineEdit(centralWidget); 550 | lineEdit_19->setObjectName(QString::fromUtf8("lineEdit_19")); 551 | sizePolicy1.setHeightForWidth(lineEdit_19->sizePolicy().hasHeightForWidth()); 552 | lineEdit_19->setSizePolicy(sizePolicy1); 553 | 554 | horizontalLayout_9->addWidget(lineEdit_19); 555 | 556 | pushButton_3 = new QPushButton(centralWidget); 557 | pushButton_3->setObjectName(QString::fromUtf8("pushButton_3")); 558 | pushButton_3->setMaximumSize(QSize(60, 20)); 559 | 560 | horizontalLayout_9->addWidget(pushButton_3); 561 | 562 | 563 | verticalLayout_2->addLayout(horizontalLayout_9); 564 | 565 | horizontalLayout_10 = new QHBoxLayout(); 566 | horizontalLayout_10->setSpacing(6); 567 | horizontalLayout_10->setObjectName(QString::fromUtf8("horizontalLayout_10")); 568 | lineEdit_20 = new QLineEdit(centralWidget); 569 | lineEdit_20->setObjectName(QString::fromUtf8("lineEdit_20")); 570 | sizePolicy1.setHeightForWidth(lineEdit_20->sizePolicy().hasHeightForWidth()); 571 | lineEdit_20->setSizePolicy(sizePolicy1); 572 | 573 | horizontalLayout_10->addWidget(lineEdit_20); 574 | 575 | pushButton_4 = new QPushButton(centralWidget); 576 | pushButton_4->setObjectName(QString::fromUtf8("pushButton_4")); 577 | pushButton_4->setMaximumSize(QSize(60, 20)); 578 | 579 | horizontalLayout_10->addWidget(pushButton_4); 580 | 581 | 582 | verticalLayout_2->addLayout(horizontalLayout_10); 583 | 584 | horizontalLayout_11 = new QHBoxLayout(); 585 | horizontalLayout_11->setSpacing(6); 586 | horizontalLayout_11->setObjectName(QString::fromUtf8("horizontalLayout_11")); 587 | lineEdit_21 = new QLineEdit(centralWidget); 588 | lineEdit_21->setObjectName(QString::fromUtf8("lineEdit_21")); 589 | sizePolicy1.setHeightForWidth(lineEdit_21->sizePolicy().hasHeightForWidth()); 590 | lineEdit_21->setSizePolicy(sizePolicy1); 591 | 592 | horizontalLayout_11->addWidget(lineEdit_21); 593 | 594 | pushButton_5 = new QPushButton(centralWidget); 595 | pushButton_5->setObjectName(QString::fromUtf8("pushButton_5")); 596 | pushButton_5->setMaximumSize(QSize(60, 20)); 597 | 598 | horizontalLayout_11->addWidget(pushButton_5); 599 | 600 | 601 | verticalLayout_2->addLayout(horizontalLayout_11); 602 | 603 | horizontalLayout_13 = new QHBoxLayout(); 604 | horizontalLayout_13->setSpacing(6); 605 | horizontalLayout_13->setObjectName(QString::fromUtf8("horizontalLayout_13")); 606 | lineEdit_22 = new QLineEdit(centralWidget); 607 | lineEdit_22->setObjectName(QString::fromUtf8("lineEdit_22")); 608 | sizePolicy1.setHeightForWidth(lineEdit_22->sizePolicy().hasHeightForWidth()); 609 | lineEdit_22->setSizePolicy(sizePolicy1); 610 | 611 | horizontalLayout_13->addWidget(lineEdit_22); 612 | 613 | pushButton_6 = new QPushButton(centralWidget); 614 | pushButton_6->setObjectName(QString::fromUtf8("pushButton_6")); 615 | pushButton_6->setMaximumSize(QSize(60, 20)); 616 | 617 | horizontalLayout_13->addWidget(pushButton_6); 618 | 619 | 620 | verticalLayout_2->addLayout(horizontalLayout_13); 621 | 622 | 623 | horizontalLayout_6->addLayout(verticalLayout_2); 624 | 625 | 626 | verticalLayout_4->addLayout(horizontalLayout_6); 627 | 628 | horizontalLayout = new QHBoxLayout(); 629 | horizontalLayout->setSpacing(6); 630 | horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); 631 | horizontalLayout->setContentsMargins(10, -1, 10, -1); 632 | label = new QLabel(centralWidget); 633 | label->setObjectName(QString::fromUtf8("label")); 634 | 635 | horizontalLayout->addWidget(label); 636 | 637 | cb_SerialPort = new QComboBox(centralWidget); 638 | cb_SerialPort->setObjectName(QString::fromUtf8("cb_SerialPort")); 639 | QSizePolicy sizePolicy2(QSizePolicy::Preferred, QSizePolicy::Minimum); 640 | sizePolicy2.setHorizontalStretch(0); 641 | sizePolicy2.setVerticalStretch(0); 642 | sizePolicy2.setHeightForWidth(cb_SerialPort->sizePolicy().hasHeightForWidth()); 643 | cb_SerialPort->setSizePolicy(sizePolicy2); 644 | 645 | horizontalLayout->addWidget(cb_SerialPort); 646 | 647 | label_2 = new QLabel(centralWidget); 648 | label_2->setObjectName(QString::fromUtf8("label_2")); 649 | 650 | horizontalLayout->addWidget(label_2); 651 | 652 | cb_baudRate = new QComboBox(centralWidget); 653 | cb_baudRate->addItem(QString()); 654 | cb_baudRate->addItem(QString()); 655 | cb_baudRate->addItem(QString()); 656 | cb_baudRate->addItem(QString()); 657 | cb_baudRate->addItem(QString()); 658 | cb_baudRate->addItem(QString()); 659 | cb_baudRate->addItem(QString()); 660 | cb_baudRate->addItem(QString()); 661 | cb_baudRate->addItem(QString()); 662 | cb_baudRate->addItem(QString()); 663 | cb_baudRate->addItem(QString()); 664 | cb_baudRate->addItem(QString()); 665 | cb_baudRate->setObjectName(QString::fromUtf8("cb_baudRate")); 666 | sizePolicy2.setHeightForWidth(cb_baudRate->sizePolicy().hasHeightForWidth()); 667 | cb_baudRate->setSizePolicy(sizePolicy2); 668 | cb_baudRate->setEditable(true); 669 | 670 | horizontalLayout->addWidget(cb_baudRate); 671 | 672 | Connect_ADDR = new QLineEdit(centralWidget); 673 | Connect_ADDR->setObjectName(QString::fromUtf8("Connect_ADDR")); 674 | Connect_ADDR->setEnabled(false); 675 | Connect_ADDR->setMinimumSize(QSize(120, 0)); 676 | Connect_ADDR->setMaximumSize(QSize(16777215, 16777215)); 677 | Connect_ADDR->setReadOnly(false); 678 | 679 | horizontalLayout->addWidget(Connect_ADDR); 680 | 681 | btn_OpenSerial = new QPushButton(centralWidget); 682 | btn_OpenSerial->setObjectName(QString::fromUtf8("btn_OpenSerial")); 683 | QSizePolicy sizePolicy3(QSizePolicy::Minimum, QSizePolicy::Minimum); 684 | sizePolicy3.setHorizontalStretch(0); 685 | sizePolicy3.setVerticalStretch(0); 686 | sizePolicy3.setHeightForWidth(btn_OpenSerial->sizePolicy().hasHeightForWidth()); 687 | btn_OpenSerial->setSizePolicy(sizePolicy3); 688 | 689 | horizontalLayout->addWidget(btn_OpenSerial); 690 | 691 | btn_StopDis = new QPushButton(centralWidget); 692 | btn_StopDis->setObjectName(QString::fromUtf8("btn_StopDis")); 693 | sizePolicy3.setHeightForWidth(btn_StopDis->sizePolicy().hasHeightForWidth()); 694 | btn_StopDis->setSizePolicy(sizePolicy3); 695 | 696 | horizontalLayout->addWidget(btn_StopDis); 697 | 698 | btn_ClearSeries = new QPushButton(centralWidget); 699 | btn_ClearSeries->setObjectName(QString::fromUtf8("btn_ClearSeries")); 700 | 701 | horizontalLayout->addWidget(btn_ClearSeries); 702 | 703 | btn_SetXSize = new QPushButton(centralWidget); 704 | btn_SetXSize->setObjectName(QString::fromUtf8("btn_SetXSize")); 705 | 706 | horizontalLayout->addWidget(btn_SetXSize); 707 | 708 | leXSize = new QLineEdit(centralWidget); 709 | leXSize->setObjectName(QString::fromUtf8("leXSize")); 710 | leXSize->setMaxLength(5); 711 | leXSize->setFrame(true); 712 | leXSize->setCursorMoveStyle(Qt::LogicalMoveStyle); 713 | leXSize->setClearButtonEnabled(false); 714 | 715 | horizontalLayout->addWidget(leXSize); 716 | 717 | checkBoxXAuto = new QCheckBox(centralWidget); 718 | checkBoxXAuto->setObjectName(QString::fromUtf8("checkBoxXAuto")); 719 | checkBoxXAuto->setChecked(true); 720 | 721 | horizontalLayout->addWidget(checkBoxXAuto); 722 | 723 | checkBoxYAuto = new QCheckBox(centralWidget); 724 | checkBoxYAuto->setObjectName(QString::fromUtf8("checkBoxYAuto")); 725 | checkBoxYAuto->setChecked(true); 726 | 727 | horizontalLayout->addWidget(checkBoxYAuto); 728 | 729 | horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); 730 | 731 | horizontalLayout->addItem(horizontalSpacer); 732 | 733 | btn_help = new QPushButton(centralWidget); 734 | btn_help->setObjectName(QString::fromUtf8("btn_help")); 735 | 736 | horizontalLayout->addWidget(btn_help); 737 | 738 | horizontalLayout->setStretch(0, 1); 739 | horizontalLayout->setStretch(1, 2); 740 | horizontalLayout->setStretch(2, 1); 741 | horizontalLayout->setStretch(3, 2); 742 | horizontalLayout->setStretch(5, 2); 743 | horizontalLayout->setStretch(6, 2); 744 | horizontalLayout->setStretch(7, 2); 745 | horizontalLayout->setStretch(8, 2); 746 | horizontalLayout->setStretch(9, 1); 747 | horizontalLayout->setStretch(10, 1); 748 | horizontalLayout->setStretch(11, 1); 749 | horizontalLayout->setStretch(12, 10); 750 | 751 | verticalLayout_4->addLayout(horizontalLayout); 752 | 753 | MainWindow->setCentralWidget(centralWidget); 754 | menuBar = new QMenuBar(MainWindow); 755 | menuBar->setObjectName(QString::fromUtf8("menuBar")); 756 | menuBar->setGeometry(QRect(0, 0, 1185, 26)); 757 | menu = new QMenu(menuBar); 758 | menu->setObjectName(QString::fromUtf8("menu")); 759 | MainWindow->setMenuBar(menuBar); 760 | statusBar = new QStatusBar(MainWindow); 761 | statusBar->setObjectName(QString::fromUtf8("statusBar")); 762 | MainWindow->setStatusBar(statusBar); 763 | 764 | menuBar->addAction(menu->menuAction()); 765 | menu->addAction(action_save); 766 | menu->addAction(action_load); 767 | 768 | retranslateUi(MainWindow); 769 | 770 | cb_baudRate->setCurrentIndex(0); 771 | 772 | 773 | QMetaObject::connectSlotsByName(MainWindow); 774 | } // setupUi 775 | 776 | void retranslateUi(QMainWindow *MainWindow) 777 | { 778 | MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "\344\270\262\345\217\243\347\244\272\346\263\242\345\231\250", nullptr)); 779 | action_save->setText(QCoreApplication::translate("MainWindow", "\344\277\235\345\255\230\346\225\260\346\215\256", nullptr)); 780 | action_load->setText(QCoreApplication::translate("MainWindow", "\350\275\275\345\205\245\346\225\260\346\215\256", nullptr)); 781 | LBL1->setText(QCoreApplication::translate("MainWindow", "V1", nullptr)); 782 | LBL2->setText(QCoreApplication::translate("MainWindow", "V2", nullptr)); 783 | LBL3->setText(QCoreApplication::translate("MainWindow", "V3", nullptr)); 784 | LBL4->setText(QCoreApplication::translate("MainWindow", "V4", nullptr)); 785 | LBL5->setText(QCoreApplication::translate("MainWindow", "V5", nullptr)); 786 | LBL6->setText(QCoreApplication::translate("MainWindow", "V6", nullptr)); 787 | LBL7->setText(QCoreApplication::translate("MainWindow", "V7", nullptr)); 788 | LBL8->setText(QCoreApplication::translate("MainWindow", "V8", nullptr)); 789 | LBL9->setText(QCoreApplication::translate("MainWindow", "V9", nullptr)); 790 | LBL10->setText(QCoreApplication::translate("MainWindow", "V10", nullptr)); 791 | LBL11->setText(QCoreApplication::translate("MainWindow", "V11", nullptr)); 792 | LBL12->setText(QCoreApplication::translate("MainWindow", "V12", nullptr)); 793 | LBL13->setText(QCoreApplication::translate("MainWindow", "V13", nullptr)); 794 | LBL14->setText(QCoreApplication::translate("MainWindow", "V14", nullptr)); 795 | LBL15->setText(QCoreApplication::translate("MainWindow", "V15", nullptr)); 796 | CH1->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 797 | CH2->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 798 | CH3->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 799 | CH4->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 800 | CH5->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 801 | CH6->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 802 | CH7->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 803 | CH8->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 804 | CH9->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 805 | CH20->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 806 | CH10->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 807 | CH11->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 808 | CH12->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 809 | CH13->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 810 | CH14->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 811 | CH15->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 812 | CH16->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 813 | CH17->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 814 | CH18->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 815 | CH19->setText(QCoreApplication::translate("MainWindow", "CH", nullptr)); 816 | HEXRCV->setText(QCoreApplication::translate("MainWindow", "16\350\277\233\345\210\266\346\216\245\346\224\266", nullptr)); 817 | HEXSND->setText(QCoreApplication::translate("MainWindow", "16\350\277\233\345\210\266\345\217\221\351\200\201", nullptr)); 818 | periodsend->setText(QCoreApplication::translate("MainWindow", "\345\256\232\346\227\266\345\217\221\351\200\201", nullptr)); 819 | lineEdit_16->setText(QCoreApplication::translate("MainWindow", "1000", nullptr)); 820 | BTNSEND->setText(QCoreApplication::translate("MainWindow", "\345\217\221\351\200\201", nullptr)); 821 | pushButton->setText(QCoreApplication::translate("MainWindow", "DATA1", nullptr)); 822 | pushButton_2->setText(QCoreApplication::translate("MainWindow", "DATA2", nullptr)); 823 | pushButton_3->setText(QCoreApplication::translate("MainWindow", "DATA3", nullptr)); 824 | pushButton_4->setText(QCoreApplication::translate("MainWindow", "DATA4", nullptr)); 825 | pushButton_5->setText(QCoreApplication::translate("MainWindow", "DATA5", nullptr)); 826 | pushButton_6->setText(QCoreApplication::translate("MainWindow", "DATA6", nullptr)); 827 | label->setText(QCoreApplication::translate("MainWindow", "\351\200\232\344\277\241\346\226\271\345\274\217", nullptr)); 828 | label_2->setText(QCoreApplication::translate("MainWindow", "\346\263\242\347\211\271\347\216\207/\347\253\257\345\217\243", nullptr)); 829 | cb_baudRate->setItemText(0, QCoreApplication::translate("MainWindow", "2400", nullptr)); 830 | cb_baudRate->setItemText(1, QCoreApplication::translate("MainWindow", "4800", nullptr)); 831 | cb_baudRate->setItemText(2, QCoreApplication::translate("MainWindow", "9600", nullptr)); 832 | cb_baudRate->setItemText(3, QCoreApplication::translate("MainWindow", "19200", nullptr)); 833 | cb_baudRate->setItemText(4, QCoreApplication::translate("MainWindow", "38400", nullptr)); 834 | cb_baudRate->setItemText(5, QCoreApplication::translate("MainWindow", "57600", nullptr)); 835 | cb_baudRate->setItemText(6, QCoreApplication::translate("MainWindow", "76800", nullptr)); 836 | cb_baudRate->setItemText(7, QCoreApplication::translate("MainWindow", "115200", nullptr)); 837 | cb_baudRate->setItemText(8, QCoreApplication::translate("MainWindow", "153600", nullptr)); 838 | cb_baudRate->setItemText(9, QCoreApplication::translate("MainWindow", "230400", nullptr)); 839 | cb_baudRate->setItemText(10, QCoreApplication::translate("MainWindow", "500000", nullptr)); 840 | cb_baudRate->setItemText(11, QCoreApplication::translate("MainWindow", "1000000", nullptr)); 841 | 842 | btn_OpenSerial->setText(QCoreApplication::translate("MainWindow", "\345\274\200\345\220\257", nullptr)); 843 | btn_StopDis->setText(QCoreApplication::translate("MainWindow", "\345\274\200\345\247\213\346\233\264\346\226\260", nullptr)); 844 | btn_ClearSeries->setText(QCoreApplication::translate("MainWindow", "\346\270\205\351\231\244\346\233\262\347\272\277", nullptr)); 845 | btn_SetXSize->setText(QCoreApplication::translate("MainWindow", "\350\256\276\347\275\256X\350\214\203\345\233\264", nullptr)); 846 | leXSize->setText(QCoreApplication::translate("MainWindow", "200", nullptr)); 847 | checkBoxXAuto->setText(QCoreApplication::translate("MainWindow", "X\350\207\252\345\212\250", nullptr)); 848 | checkBoxYAuto->setText(QCoreApplication::translate("MainWindow", "Y\350\207\252\345\212\250", nullptr)); 849 | btn_help->setText(QCoreApplication::translate("MainWindow", "\345\270\256\345\212\251", nullptr)); 850 | menu->setTitle(QCoreApplication::translate("MainWindow", "\350\217\234\345\215\225", nullptr)); 851 | } // retranslateUi 852 | 853 | }; 854 | 855 | namespace Ui { 856 | class MainWindow: public Ui_MainWindow {}; 857 | } // namespace Ui 858 | 859 | QT_END_NAMESPACE 860 | 861 | #endif // UI_MAINWINDOW_H 862 | -------------------------------------------------------------------------------- /程序.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xzhiot/serial_net_graph/35884f0a2c3f96e411062f2831b18eb76c87a052/程序.png --------------------------------------------------------------------------------