KNX Local Device Management Example

<?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>867</width>
    <height>416</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>KNX local device management example</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <layout class="QGridLayout" name="gridLayout" columnstretch="0,1,0,0,0,1,0,0">
      <item row="0" column="0">
       <widget class="QLabel" name="interfaceObjectTypeLabel">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>Interface object type:</string>
        </property>
       </widget>
      </item>
      <item row="0" column="1">
       <widget class="QComboBox" name="interfaceObjectTypes">
        <property name="enabled">
         <bool>false</bool>
        </property>
        <property name="sizePolicy">
         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
       </widget>
      </item>
      <item row="0" column="2">
       <widget class="QLabel" name="objectInstanceLabel">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>Object instance:</string>
        </property>
       </widget>
      </item>
      <item row="0" column="3">
       <widget class="QSpinBox" name="objectInstance">
        <property name="enabled">
         <bool>false</bool>
        </property>
        <property name="minimumSize">
         <size>
          <width>50</width>
          <height>0</height>
         </size>
        </property>
        <property name="minimum">
         <number>1</number>
        </property>
        <property name="maximum">
         <number>255</number>
        </property>
       </widget>
      </item>
      <item row="0" column="4">
       <widget class="QLabel" name="propertyIdLabel">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>Property ID:</string>
        </property>
       </widget>
      </item>
      <item row="0" column="5">
       <widget class="QComboBox" name="propertyId">
        <property name="enabled">
         <bool>false</bool>
        </property>
        <property name="sizePolicy">
         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
       </widget>
      </item>
      <item row="0" column="6">
       <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>
      <item row="0" column="7">
       <widget class="QPushButton" name="sendRead">
        <property name="enabled">
         <bool>false</bool>
        </property>
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>Read</string>
        </property>
       </widget>
      </item>
      <item row="1" column="0">
       <widget class="QLabel" name="numberOfElementsLabel">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>Number of elements:</string>
        </property>
       </widget>
      </item>
      <item row="1" column="1">
       <layout class="QHBoxLayout" name="horizontalLayout_2">
        <item>
         <widget class="QSpinBox" name="numberOfElements">
          <property name="enabled">
           <bool>false</bool>
          </property>
          <property name="minimumSize">
           <size>
            <width>50</width>
            <height>0</height>
           </size>
          </property>
          <property name="minimum">
           <number>1</number>
          </property>
          <property name="maximum">
           <number>15</number>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QLabel" name="startIndexLabel">
          <property name="sizePolicy">
           <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
          </property>
          <property name="text">
           <string>Start index:</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QSpinBox" name="startIndex">
          <property name="enabled">
           <bool>false</bool>
          </property>
          <property name="minimumSize">
           <size>
            <width>50</width>
            <height>0</height>
           </size>
          </property>
          <property name="maximum">
           <number>4095</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>
      </item>
      <item row="1" column="2">
       <widget class="QLabel" name="dataLabel">
        <property name="text">
         <string>Data:</string>
        </property>
       </widget>
      </item>
      <item row="1" column="3" colspan="3">
       <widget class="QLineEdit" name="data">
        <property name="enabled">
         <bool>false</bool>
        </property>
       </widget>
      </item>
      <item row="1" column="7">
       <widget class="QPushButton" name="sendWrite">
        <property name="enabled">
         <bool>false</bool>
        </property>
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>Write</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
    <item>
     <widget class="QTreeWidget" name="communication">
      <property name="contextMenuPolicy">
       <enum>Qt::DefaultContextMenu</enum>
      </property>
      <property name="uniformRowHeights">
       <bool>true</bool>
      </property>
      <attribute name="headerShowSortIndicator" stdset="0">
       <bool>false</bool>
      </attribute>
      <column>
       <property name="text">
        <string>#</string>
       </property>
      </column>
      <column>
       <property name="text">
        <string>Message code</string>
       </property>
      </column>
      <column>
       <property name="text">
        <string>Interface object type</string>
       </property>
      </column>
      <column>
       <property name="text">
        <string>Object instance</string>
       </property>
      </column>
      <column>
       <property name="text">
        <string>Property ID</string>
       </property>
      </column>
      <column>
       <property name="text">
        <string>Number of elements</string>
       </property>
      </column>
      <column>
       <property name="text">
        <string>Start index</string>
       </property>
      </column>
      <column>
       <property name="text">
        <string>Data</string>
       </property>
      </column>
      <column>
       <property name="text">
        <string>Frame</string>
       </property>
      </column>
     </widget>
    </item>
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1,0,1,0,1,0,0">
      <item>
       <widget class="QLabel" name="interfaceLabel">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>Interface:</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QComboBox" name="interfaces">
        <property name="sizePolicy">
         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QLabel" name="deviceLabel">
        <property name="sizePolicy">
         <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text">
         <string>Device:</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QComboBox" name="devices">
        <property name="enabled">
         <bool>false</bool>
        </property>
        <property name="sizePolicy">
         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QCheckBox" name="secureSession">
        <property name="enabled">
         <bool>false</bool>
        </property>
        <property name="text">
         <string>Use secure session</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QComboBox" name="secureConfigs">
        <property name="enabled">
         <bool>false</bool>
        </property>
        <property name="sizePolicy">
         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
       </widget>
      </item>
      <item>
       <spacer name="spacerRight">
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
        </property>
        <property name="sizeType">
         <enum>QSizePolicy::Expanding</enum>
        </property>
        <property name="sizeHint" stdset="0">
         <size>
          <width>40</width>
          <height>20</height>
         </size>
        </property>
       </spacer>
      </item>
      <item>
       <widget class="QPushButton" name="connection">
        <property name="text">
         <string>Connect</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menuBar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>867</width>
     <height>21</height>
    </rect>
   </property>
   <widget class="QMenu" name="menuFile">
    <property name="title">
     <string>File</string>
    </property>
    <widget class="QMenu" name="menuImport">
     <property name="title">
      <string>Import</string>
     </property>
     <addaction name="actionImport"/>
    </widget>
    <addaction name="menuImport"/>
    <addaction name="separator"/>
    <addaction name="actionExit"/>
   </widget>
   <widget class="QMenu" name="menuEdit">
    <property name="title">
     <string>Edit</string>
    </property>
    <addaction name="actionClear"/>
   </widget>
   <addaction name="menuFile"/>
   <addaction name="menuEdit"/>
  </widget>
  <action name="actionExit">
   <property name="text">
    <string>Exit</string>
   </property>
  </action>
  <action name="actionImport">
   <property name="text">
    <string>KNX keyring file...</string>
   </property>
  </action>
  <action name="actionClear">
   <property name="text">
    <string>Clear telegram list</string>
   </property>
  </action>
 </widget>
 <resources/>
 <connections>
  <connection>
   <sender>secureSession</sender>
   <signal>toggled(bool)</signal>
   <receiver>secureConfigs</receiver>
   <slot>setEnabled(bool)</slot>
   <hints>
    <hint type="sourcelabel">
     <x>516</x>
     <y>391</y>
    </hint>
    <hint type="destinationlabel">
     <x>634</x>
     <y>393</y>
    </hint>
   </hints>
  </connection>
 </connections>
</ui>