Files
2023-Webservices_And_Applic…/Applications/qModMaster/forms/mainwindow.ui

780 lines
22 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>564</width>
<height>400</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>564</width>
<height>400</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>720</width>
<height>720</height>
</size>
</property>
<property name="windowTitle">
<string>QModMaster</string>
</property>
<property name="windowIcon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/connect-24.png</normaloff>:/icons/connect-24.png</iconset>
</property>
<widget class="QWidget" name="centralWidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="InfoBar" name="infobar">
<layout class="QHBoxLayout" name="horizontalLayout_2"/>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_1">
<property name="minimumSize">
<size>
<width>0</width>
<height>38</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="topMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QLabel" name="lblModbusMode">
<property name="text">
<string>Modbus Mode</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>cmbModbusMode</cstring>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cmbModbusMode">
<item>
<property name="text">
<string notr="true">RTU</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">TCP</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QLabel" name="lblSlave">
<property name="text">
<string>Slave Addr</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>sbSlaveID</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="sbSlaveID">
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblScan">
<property name="text">
<string>Scan Rate (ms)</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spInterval">
<property name="minimum">
<number>1000</number>
</property>
<property name="maximum">
<number>10000</number>
</property>
<property name="singleStep">
<number>500</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_2">
<property name="minimumSize">
<size>
<width>0</width>
<height>38</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="topMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QLabel" name="lblFunctionCode">
<property name="text">
<string>Function Code</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>cmbFunctionCode</cstring>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cmbFunctionCode">
<property name="frame">
<bool>true</bool>
</property>
<item>
<property name="text">
<string>Read Coils (0x01)</string>
</property>
</item>
<item>
<property name="text">
<string>Read Discrete Inputs (0x02)</string>
</property>
</item>
<item>
<property name="text">
<string>Read Holding Registers (0x03)</string>
</property>
</item>
<item>
<property name="text">
<string>Read Input Registers (0x04)</string>
</property>
</item>
<item>
<property name="text">
<string>Write Single Coil (0x05)</string>
</property>
</item>
<item>
<property name="text">
<string>Write Single Register (0x06)</string>
</property>
</item>
<item>
<property name="text">
<string>Write Multiple Coils (0x0f)</string>
</property>
</item>
<item>
<property name="text">
<string>Write Multiple Registers (0x10)</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QLabel" name="lblStartAddress">
<property name="text">
<string>Start Address</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>sbStartAddress</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="sbStartAddress">
<property name="maximum">
<number>65535</number>
</property>
<property name="displayIntegerBase">
<number>10</number>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cmbStartAddrBase">
<property name="currentIndex">
<number>0</number>
</property>
<item>
<property name="text">
<string>Dec</string>
</property>
</item>
<item>
<property name="text">
<string>Hex</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_3">
<property name="minimumSize">
<size>
<width>0</width>
<height>38</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="topMargin">
<number>6</number>
</property>
<item>
<widget class="QLabel" name="lblNoOfCoils">
<property name="text">
<string>Number of Coils</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>sbNoOfRegs</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="sbNoOfRegs">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>2000</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblDataFormat">
<property name="text">
<string>Data Format</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>sbStartAddress</cstring>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cmbFrmt">
<property name="currentText">
<string>Bin</string>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<item>
<property name="text">
<string>Bin</string>
</property>
</item>
<item>
<property name="text">
<string>Dec</string>
</property>
</item>
<item>
<property name="text">
<string>Hex</string>
</property>
</item>
<item>
<property name="text">
<string>Float</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QCheckBox" name="chkSigned">
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
</property>
<property name="text">
<string>Signed</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblPrecision">
<property name="text">
<string>Precision</string>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="sbPrecision">
<property name="minimum">
<number>-1</number>
</property>
<property name="maximum">
<number>7</number>
</property>
<property name="value">
<number>3</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QTableView" name="tblRegisters">
<property name="cornerButtonEnabled">
<bool>false</bool>
</property>
<attribute name="horizontalHeaderVisible">
<bool>true</bool>
</attribute>
<attribute name="horizontalHeaderHighlightSections">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderHighlightSections">
<bool>true</bool>
</attribute>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>564</width>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>File</string>
</property>
<addaction name="actionLoad_Session"/>
<addaction name="actionSave_Session"/>
<addaction name="separator"/>
<addaction name="actionExit"/>
</widget>
<widget class="QMenu" name="menuOptions">
<property name="title">
<string>Options</string>
</property>
<addaction name="actionSerial_RTU"/>
<addaction name="actionTCP"/>
<addaction name="separator"/>
<addaction name="actionSettings"/>
</widget>
<widget class="QMenu" name="menuHelp">
<property name="title">
<string>Help</string>
</property>
<addaction name="actionModbus_Manual"/>
<addaction name="actionAbout"/>
</widget>
<widget class="QMenu" name="menuView">
<property name="title">
<string>View</string>
</property>
<addaction name="actionOpenLogFile"/>
<addaction name="actionBus_Monitor"/>
<addaction name="actionTools"/>
<addaction name="separator"/>
<addaction name="actionHeaders"/>
</widget>
<widget class="QMenu" name="menuCommands">
<property name="title">
<string>Commands</string>
</property>
<addaction name="actionConnect"/>
<addaction name="actionRead_Write"/>
<addaction name="actionScan"/>
<addaction name="actionClear"/>
<addaction name="actionReset_Counters"/>
</widget>
<addaction name="menuFile"/>
<addaction name="menuOptions"/>
<addaction name="menuCommands"/>
<addaction name="menuView"/>
<addaction name="menuHelp"/>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar">
<property name="autoFillBackground">
<bool>false</bool>
</property>
</widget>
<action name="actionExit">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/exit-16.png</normaloff>:/icons/exit-16.png</iconset>
</property>
<property name="text">
<string>Exit</string>
</property>
<property name="iconVisibleInMenu">
<bool>true</bool>
</property>
</action>
<action name="actionSerial_RTU">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/serial-pot-16.png</normaloff>:/icons/serial-pot-16.png</iconset>
</property>
<property name="text">
<string notr="true">Modbus RTU...</string>
</property>
<property name="iconVisibleInMenu">
<bool>true</bool>
</property>
</action>
<action name="actionTCP">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/ethernet-port-16.png</normaloff>:/icons/ethernet-port-16.png</iconset>
</property>
<property name="text">
<string notr="true">Modbus TCP...</string>
</property>
<property name="iconVisibleInMenu">
<bool>true</bool>
</property>
</action>
<action name="actionAbout">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/info-sign-16.png</normaloff>:/icons/info-sign-16.png</iconset>
</property>
<property name="text">
<string>About...</string>
</property>
<property name="iconVisibleInMenu">
<bool>true</bool>
</property>
</action>
<action name="actionBus_Monitor">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/TV-16.png</normaloff>:/icons/TV-16.png</iconset>
</property>
<property name="text">
<string>Bus Monitor</string>
</property>
<property name="iconVisibleInMenu">
<bool>true</bool>
</property>
</action>
<action name="actionSettings">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/options-16.png</normaloff>:/icons/options-16.png</iconset>
</property>
<property name="text">
<string>Settings...</string>
</property>
<property name="iconVisibleInMenu">
<bool>true</bool>
</property>
</action>
<action name="actionRead_Write">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/data-sort-16.png</normaloff>:/icons/data-sort-16.png</iconset>
</property>
<property name="text">
<string>Read / Write</string>
</property>
</action>
<action name="actionConnect">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/plug-disconnect-16.png</normaloff>
<normalon>:/icons/plug-connect-16.png</normalon>:/icons/plug-disconnect-16.png</iconset>
</property>
<property name="text">
<string>Connect</string>
</property>
</action>
<action name="actionScan">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/cyclic-process-16.png</normaloff>:/icons/cyclic-process-16.png</iconset>
</property>
<property name="text">
<string>Scan</string>
</property>
</action>
<action name="actionReset_Counters">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/reset-16.png</normaloff>:/icons/reset-16.png</iconset>
</property>
<property name="text">
<string>Reset Counters</string>
</property>
</action>
<action name="actionSimplified_Chinese_zh_CN">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/China-flag-16.png</normaloff>:/icons/China-flag-16.png</iconset>
</property>
<property name="text">
<string notr="true">简体中文 (zh_CN)</string>
</property>
<property name="iconText">
<string notr="true">简体中文 (zh_CN)</string>
</property>
<property name="toolTip">
<string notr="true">简体中文 (zh_CN)</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
</action>
<action name="actionTraditional_Chinese_zh_TW">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/Taiwan-flag-16.png</normaloff>:/icons/Taiwan-flag-16.png</iconset>
</property>
<property name="text">
<string notr="true">繁體中文 (zh_TW)</string>
</property>
<property name="iconText">
<string notr="true">繁體中文 (zh_TW)</string>
</property>
<property name="toolTip">
<string notr="true">繁體中文 (zh_TW)</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
</action>
<action name="actionEnglish_en_US">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/usa-flag-16.png</normaloff>:/icons/usa-flag-16.png</iconset>
</property>
<property name="text">
<string notr="true">English (en_US)</string>
</property>
<property name="iconText">
<string notr="true">English (en_US)</string>
</property>
<property name="toolTip">
<string notr="true">English (en_US)</string>
</property>
<property name="visible">
<bool>false</bool>
</property>
</action>
<action name="actionOpenLogFile">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/text-x-log-16.png</normaloff>:/icons/text-x-log-16.png</iconset>
</property>
<property name="text">
<string>Log File</string>
</property>
</action>
<action name="actionClear">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/edit-clear-16.png</normaloff>:/icons/edit-clear-16.png</iconset>
</property>
<property name="text">
<string>Clear Table</string>
</property>
</action>
<action name="actionModbus_Manual">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/help-desk-icon-16.png</normaloff>:/icons/help-desk-icon-16.png</iconset>
</property>
<property name="text">
<string>Modbus Manual</string>
</property>
</action>
<action name="actionLoad_Session">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/document-import-16.png</normaloff>:/icons/document-import-16.png</iconset>
</property>
<property name="text">
<string>Load Session...</string>
</property>
</action>
<action name="actionSave_Session">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/document-export-16.png</normaloff>:/icons/document-export-16.png</iconset>
</property>
<property name="text">
<string>Save Session...</string>
</property>
</action>
<action name="actionHeaders">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/Header16.png</normaloff>:/icons/Header16.png</iconset>
</property>
<property name="text">
<string>Headers</string>
</property>
</action>
<action name="actionTools">
<property name="icon">
<iconset resource="../icons/icons.qrc">
<normaloff>:/icons/tools-16.png</normaloff>:/icons/tools-16.png</iconset>
</property>
<property name="text">
<string>Tools</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>InfoBar</class>
<extends>QFrame</extends>
<header>src/infobar.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>tblRegisters</tabstop>
</tabstops>
<resources>
<include location="../icons/icons.qrc"/>
</resources>
<connections>
<connection>
<sender>actionExit</sender>
<signal>triggered()</signal>
<receiver>MainWindow</receiver>
<slot>close()</slot>
<hints>
<hint type="sourcelabel">
<x>-1</x>
<y>-1</y>
</hint>
<hint type="destinationlabel">
<x>199</x>
<y>149</y>
</hint>
</hints>
</connection>
</connections>
</ui>