]> rtime.felk.cvut.cz Git - mf6xx.git/commitdiff
ADC/DAC values are send from Qemu to Qt client (and vice versa) in form of a float.
authorRostislav Lisovy <lisovy@gmail.com>
Fri, 15 Apr 2011 17:58:09 +0000 (19:58 +0200)
committerRostislav Lisovy <lisovy@gmail.com>
Fri, 15 Apr 2011 17:58:09 +0000 (19:58 +0200)
src/qemu/hw/mf624.c
src/qemu/mf624_interface/untitled/main.cpp
src/qemu/mf624_interface/untitled/mainwindow.cpp
src/qemu/mf624_interface/untitled/mainwindow.h
src/qemu/mf624_interface/untitled/mainwindow.ui
src/qemu/mf624_interface/untitled/mf624_io_status.h
src/qemu/mf624_interface/untitled/socket_thread.cpp
src/qemu/mf624_interface/untitled/socket_thread.h

index 3b4c5db9c277f8f5e57d865a021eee7330438788..6c32505b03ad14b11b2fe069521585bb7528f3c0 100755 (executable)
@@ -99,7 +99,7 @@ typedef struct {
 
         /* The real voltage which is on inputs od A/D convertors.
        Until new conversion is started, there is old value in ADC registers*/  
-       unsigned int real_world_AD0;
+       unsigned int real_world_AD0; //Value in "ADC internal" format
        unsigned int real_world_AD1;
        unsigned int real_world_AD2;
        unsigned int real_world_AD3;
@@ -129,6 +129,13 @@ int instance = 0; // Global variable shared between multiple mf624 devices
 
 int16_t volts_to_adinternal(double volt)
 {
+       if (volt > 9.99) {
+               volt = 9.99;
+       }
+       else if (volt < -10) {
+               volt = -10;
+       }
+
        return ((int16_t) ((volt*0x8000)/10))>>2;
 }
 
@@ -170,11 +177,11 @@ void mf624_init_registers(mf624_state_t* s)
 }
 
 
-void socket_write(mf624_state_t *s, const char* reg, unsigned int val)
+void socket_write(mf624_state_t *s, const char* reg, double val)
 {
        int status;
        char write_buffer[256];
-       snprintf(write_buffer, 255, "%s=%d\n", reg, val);
+       snprintf(write_buffer, 255, "%s=%f\n", reg, val);
 
        status = write(s->socket_tmp, write_buffer, strlen(write_buffer));
        if (status < 0) {
@@ -188,7 +195,7 @@ void socket_read(mf624_state_t* dev)
 {
        // For parsing read instructions
        char reg[STRING_BUFF_SIZE+1];
-       int val;
+       float val;
        // For reading from socket
        char read_buffer[STRING_BUFF_SIZE];
        int received_length = 0;
@@ -209,7 +216,7 @@ void socket_read(mf624_state_t* dev)
                }
 
                // REG has "same size +1" as READ_BUFFER to avoid buffer overflow
-               status = sscanf(read_buffer, "%[A-Z0-9]=%d", reg, &val);
+               status = sscanf(read_buffer, "%[A-Z0-9]=%f", reg, &val);
                if (status == 2) {
                        if(!strcmp(reg, "DIN")) {
                                dev->BAR2.DIN = val;
@@ -325,28 +332,28 @@ void mf624_BAR0_write32(void *opaque, target_phys_addr_t addr, uint32_t value)
                        //Is DAC enabled & Output enabled?
                        if (!(s->BAR0.GPIOC & GPIOC_LDAC_mask) &&
                                (s->BAR0.GPIOC & GPIOC_DACEN_mask)) {
-                               socket_write(s, "DA0", s->BAR2.DA0);
-                               socket_write(s, "DA1", s->BAR2.DA1);
-                               socket_write(s, "DA2", s->BAR2.DA2);
-                               socket_write(s, "DA3", s->BAR2.DA3);
-                               socket_write(s, "DA4", s->BAR2.DA4);
-                               socket_write(s, "DA5", s->BAR2.DA5);
-                               socket_write(s, "DA6", s->BAR2.DA6);
-                               socket_write(s, "DA7", s->BAR2.DA7);
+                               socket_write(s, "DA0", dacinternal_to_volts(s->BAR2.DA0));
+                               socket_write(s, "DA1", dacinternal_to_volts(s->BAR2.DA1));
+                               socket_write(s, "DA2", dacinternal_to_volts(s->BAR2.DA2));
+                               socket_write(s, "DA3", dacinternal_to_volts(s->BAR2.DA3));
+                               socket_write(s, "DA4", dacinternal_to_volts(s->BAR2.DA4));
+                               socket_write(s, "DA5", dacinternal_to_volts(s->BAR2.DA5));
+                               socket_write(s, "DA6", dacinternal_to_volts(s->BAR2.DA6));
+                               socket_write(s, "DA7", dacinternal_to_volts(s->BAR2.DA7));
                        }
                        
                        //Is output forced to GND?
                        if (!(s->BAR0.GPIOC & GPIOC_DACEN_mask))
                        {
                                #define GND     0
-                               socket_write(s, "DA0", GND);
-                               socket_write(s, "DA1", GND);
-                               socket_write(s, "DA2", GND);
-                               socket_write(s, "DA3", GND);
-                               socket_write(s, "DA4", GND);
-                               socket_write(s, "DA5", GND);
-                               socket_write(s, "DA6", GND);
-                               socket_write(s, "DA7", GND);
+                               socket_write(s, "DA0", dacinternal_to_volts(GND));
+                               socket_write(s, "DA1", dacinternal_to_volts(GND));
+                               socket_write(s, "DA2", dacinternal_to_volts(GND));
+                               socket_write(s, "DA3", dacinternal_to_volts(GND));
+                               socket_write(s, "DA4", dacinternal_to_volts(GND));
+                               socket_write(s, "DA5", dacinternal_to_volts(GND));
+                               socket_write(s, "DA6", dacinternal_to_volts(GND));
+                               socket_write(s, "DA7", dacinternal_to_volts(GND));
                        }
                                
                        break;
index 739a71fdfc431d867bf55a5771b39a811c8bb745..ee94a33fb39f6bfa08d7bcd21000332a325c2f0f 100644 (file)
@@ -12,12 +12,25 @@ int main(int argc, char *argv[])
        }
 
        mf624_io_status.portno = atoi(argv[1]);
-       mf624_io_status.DIN = 0;
        mf624_io_status.DOUT = 0;
+       mf624_io_status.DIN = 0;
        mf624_io_status.DA0 = 0;
        mf624_io_status.DA1 = 0;
+       mf624_io_status.DA2 = 0;
+       mf624_io_status.DA3 = 0;
+       mf624_io_status.DA4 = 0;
+       mf624_io_status.DA5 = 0;
+       mf624_io_status.DA6 = 0;
+       mf624_io_status.DA7 = 0;
+
        mf624_io_status.AD0 = 0;
        mf624_io_status.AD1 = 0;
+       mf624_io_status.AD2 = 0;
+       mf624_io_status.AD3 = 0;
+       mf624_io_status.AD4 = 0;
+       mf624_io_status.AD5 = 0;
+       mf624_io_status.AD6 = 0;
+       mf624_io_status.AD7 = 0;
 
 
        QApplication a(argc, argv);
index 5c360a23f94a13580e0574f1c30e0d034f7f2a92..0daea2cfe7a1d709098882f75a90e81be0c4b761 100644 (file)
@@ -34,7 +34,7 @@ void MainWindow::din_set(int bit, int val)
                mf624_io_status.DIN |= (1 << bit);
        }
 
-       s_thread->socket_send("DIN=%d\n", mf624_io_status.DIN);
+       s_thread->socket_send("DIN=%f\n", (double)(mf624_io_status.DIN));
 }
 
 void MainWindow::on_checkBox_stateChanged(int arg1)
@@ -77,42 +77,42 @@ void MainWindow::on_checkBox_8_stateChanged(int arg1)
        din_set(7, arg1);
 }
 
-void MainWindow::on_horizontalSlider_valueChanged(int value)
+void MainWindow::on_adc0_valueChanged(double arg1)
 {
-       s_thread->socket_send("ADC0=%d\n", value);
+       s_thread->socket_send("ADC0=%f\n", arg1);
 }
 
-void MainWindow::on_horizontalSlider_2_valueChanged(int value)
+void MainWindow::on_adc1_valueChanged(double arg1)
 {
-       s_thread->socket_send("ADC1=%d\n", value);
+       s_thread->socket_send("ADC1=%f\n", arg1);
 }
 
-void MainWindow::on_horizontalSlider_3_valueChanged(int value)
+void MainWindow::on_adc2_valueChanged(double arg1)
 {
-       s_thread->socket_send("ADC2=%d\n", value);
+       s_thread->socket_send("ADC2=%f\n", arg1);
 }
 
-void MainWindow::on_horizontalSlider_4_valueChanged(int value)
+void MainWindow::on_adc3_valueChanged(double arg1)
 {
-       s_thread->socket_send("ADC3=%d\n", value);
+       s_thread->socket_send("ADC3=%f\n", arg1);
 }
 
-void MainWindow::on_horizontalSlider_5_valueChanged(int value)
+void MainWindow::on_adc4_valueChanged(double arg1)
 {
-       s_thread->socket_send("ADC4=%d\n", value);
+       s_thread->socket_send("ADC4=%f\n", arg1);
 }
 
-void MainWindow::on_horizontalSlider_6_valueChanged(int value)
+void MainWindow::on_adc5_valueChanged(double arg1)
 {
-       s_thread->socket_send("ADC5=%d\n", value);
+       s_thread->socket_send("ADC5=%f\n", arg1);
 }
 
-void MainWindow::on_horizontalSlider_7_valueChanged(int value)
+void MainWindow::on_adc6_valueChanged(double arg1)
 {
-       s_thread->socket_send("ADC6=%d\n", value);
+       s_thread->socket_send("ADC6=%f\n", arg1);
 }
 
-void MainWindow::on_horizontalSlider_8_valueChanged(int value)
+void MainWindow::on_adc7_valueChanged(double arg1)
 {
-       s_thread->socket_send("ADC7=%d\n", value);
+       s_thread->socket_send("ADC7=%f\n", arg1);
 }
index f68fb41c2fc3575602e8467414339c6a924c5d71..568eae61208544fff1ee1a113e287d64c2504a7e 100644 (file)
@@ -28,22 +28,20 @@ private slots:
        void on_checkBox_7_stateChanged(int arg1);
        void on_checkBox_8_stateChanged(int arg1);
 
+       void on_adc0_valueChanged(double arg1);
+       void on_adc1_valueChanged(double arg1);
 
-       void on_horizontalSlider_valueChanged(int value);
+       void on_adc2_valueChanged(double arg1);
 
-       void on_horizontalSlider_2_valueChanged(int value);
+       void on_adc3_valueChanged(double arg1);
 
-       void on_horizontalSlider_3_valueChanged(int value);
+       void on_adc4_valueChanged(double arg1);
 
-       void on_horizontalSlider_4_valueChanged(int value);
+       void on_adc5_valueChanged(double arg1);
 
-       void on_horizontalSlider_5_valueChanged(int value);
+       void on_adc6_valueChanged(double arg1);
 
-       void on_horizontalSlider_6_valueChanged(int value);
-
-       void on_horizontalSlider_7_valueChanged(int value);
-
-       void on_horizontalSlider_8_valueChanged(int value);
+       void on_adc7_valueChanged(double arg1);
 
 private:
        int DIN; //DIN register
index c353c1d6d9957b12a66af7aa75469669f571abe1..1ffa3c86a3c8fcbba99680a53b2e9c6055bc92c4 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>612</width>
-    <height>577</height>
+    <width>484</width>
+    <height>569</height>
    </rect>
   </property>
   <property name="sizePolicy">
      <rect>
       <x>10</x>
       <y>10</y>
-      <width>421</width>
+      <width>461</width>
       <height>22</height>
      </rect>
     </property>
     <property name="font">
      <font>
-      <pointsize>14</pointsize>
+      <pointsize>13</pointsize>
       <weight>75</weight>
       <bold>true</bold>
      </font>
      <string>Humusoft MF624 DAQ input/output interface</string>
     </property>
    </widget>
-   <widget class="QWidget" name="">
-    <property name="geometry">
-     <rect>
-      <x>11</x>
-      <y>189</y>
-      <width>591</width>
-      <height>341</height>
-     </rect>
-    </property>
-    <layout class="QHBoxLayout" name="horizontalLayout_19">
-     <item>
-      <widget class="QGroupBox" name="groupBox_3">
-       <property name="title">
-        <string>ADC</string>
-       </property>
-       <widget class="QWidget" name="layoutWidget">
-        <property name="geometry">
-         <rect>
-          <x>20</x>
-          <y>30</y>
-          <width>241</width>
-          <height>286</height>
-         </rect>
-        </property>
-        <layout class="QVBoxLayout" name="verticalLayout_2">
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_3">
-           <item>
-            <widget class="QSlider" name="horizontalSlider">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="singleStep">
-              <number>1</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="spinBox">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_5">
-           <item>
-            <widget class="QSlider" name="horizontalSlider_2">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="spinBox_2">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_6">
-           <item>
-            <widget class="QSlider" name="horizontalSlider_3">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="spinBox_3">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_7">
-           <item>
-            <widget class="QSlider" name="horizontalSlider_4">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="spinBox_4">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_8">
-           <item>
-            <widget class="QSlider" name="horizontalSlider_5">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="spinBox_5">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_9">
-           <item>
-            <widget class="QSlider" name="horizontalSlider_6">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="spinBox_6">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_10">
-           <item>
-            <widget class="QSlider" name="horizontalSlider_7">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="spinBox_7">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_11">
-           <item>
-            <widget class="QSlider" name="horizontalSlider_8">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="spinBox_8">
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-        </layout>
-       </widget>
-      </widget>
-     </item>
-     <item>
-      <widget class="QGroupBox" name="groupBox_4">
-       <property name="title">
-        <string>DAC</string>
-       </property>
-       <widget class="QWidget" name="">
-        <property name="geometry">
-         <rect>
-          <x>20</x>
-          <y>30</y>
-          <width>261</width>
-          <height>286</height>
-         </rect>
-        </property>
-        <layout class="QVBoxLayout" name="verticalLayout">
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_4">
-           <item>
-            <widget class="QSlider" name="dac0_slider">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="dac0_spinbox">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_12">
-           <item>
-            <widget class="QSlider" name="dac1_slider">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="dac1_spinbox">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_13">
-           <item>
-            <widget class="QSlider" name="dac2_slider">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="dac2_spinbox">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_14">
-           <item>
-            <widget class="QSlider" name="dac3_slider">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="dac3_spinbox">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_15">
-           <item>
-            <widget class="QSlider" name="dac4_slider">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="dac4_spinbox">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_16">
-           <item>
-            <widget class="QSlider" name="dac5_slider">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="dac5_spinbox">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_17">
-           <item>
-            <widget class="QSlider" name="dac6_slider">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="dac6_spinbox">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item>
-          <layout class="QHBoxLayout" name="horizontalLayout_18">
-           <item>
-            <widget class="QSlider" name="dac7_slider">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <number>-10</number>
-             </property>
-             <property name="maximum">
-              <number>10</number>
-             </property>
-             <property name="pageStep">
-              <number>1</number>
-             </property>
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QSpinBox" name="dac7_spinbox">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-        </layout>
-       </widget>
-      </widget>
-     </item>
-    </layout>
-   </widget>
-   <widget class="QWidget" name="">
+   <widget class="QWidget" name="layoutWidget">
     <property name="geometry">
      <rect>
       <x>11</x>
       <y>41</y>
-      <width>591</width>
+      <width>461</width>
       <height>141</height>
      </rect>
     </property>
          <rect>
           <x>10</x>
           <y>30</y>
-          <width>574</width>
+          <width>441</width>
           <height>31</height>
          </rect>
         </property>
          <rect>
           <x>10</x>
           <y>40</y>
-          <width>571</width>
+          <width>441</width>
           <height>24</height>
          </rect>
         </property>
      </item>
     </layout>
    </widget>
+   <widget class="QGroupBox" name="groupBox_3">
+    <property name="geometry">
+     <rect>
+      <x>12</x>
+      <y>190</y>
+      <width>231</width>
+      <height>381</height>
+     </rect>
+    </property>
+    <property name="title">
+     <string>ADC</string>
+    </property>
+    <widget class="QWidget" name="">
+     <property name="geometry">
+      <rect>
+       <x>20</x>
+       <y>30</y>
+       <width>191</width>
+       <height>331</height>
+      </rect>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_4">
+        <item>
+         <widget class="QDoubleSpinBox" name="adc0">
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_2">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>22</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>0</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_5">
+        <item>
+         <widget class="QDoubleSpinBox" name="adc1">
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_3">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>1</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_6">
+        <item>
+         <widget class="QDoubleSpinBox" name="adc2">
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_4">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>2</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_7">
+        <item>
+         <widget class="QDoubleSpinBox" name="adc3">
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_5">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>3</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_8">
+        <item>
+         <widget class="QDoubleSpinBox" name="adc4">
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_6">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>4</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_9">
+        <item>
+         <widget class="QDoubleSpinBox" name="adc5">
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_7">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>5</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_10">
+        <item>
+         <widget class="QDoubleSpinBox" name="adc6">
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_8">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>6</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_11">
+        <item>
+         <widget class="QDoubleSpinBox" name="adc7">
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_9">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>16777215</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>7</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </widget>
+   <widget class="QGroupBox" name="groupBox_4">
+    <property name="geometry">
+     <rect>
+      <x>250</x>
+      <y>190</y>
+      <width>221</width>
+      <height>381</height>
+     </rect>
+    </property>
+    <property name="title">
+     <string>DAC</string>
+    </property>
+    <widget class="QWidget" name="">
+     <property name="geometry">
+      <rect>
+       <x>10</x>
+       <y>30</y>
+       <width>191</width>
+       <height>331</height>
+      </rect>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_2">
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_3">
+        <item>
+         <widget class="QDoubleSpinBox" name="dac0">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_10">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>22</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>0</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_12">
+        <item>
+         <widget class="QDoubleSpinBox" name="dac1">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_11">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>22</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>1</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_13">
+        <item>
+         <widget class="QDoubleSpinBox" name="dac2">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_12">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>22</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>2</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_14">
+        <item>
+         <widget class="QDoubleSpinBox" name="dac3">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_13">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>22</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>3</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_15">
+        <item>
+         <widget class="QDoubleSpinBox" name="dac4">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_14">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>22</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>4</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_16">
+        <item>
+         <widget class="QDoubleSpinBox" name="dac5">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_15">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>22</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>5</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_17">
+        <item>
+         <widget class="QDoubleSpinBox" name="dac6">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_16">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>22</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>6</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_18">
+        <item>
+         <widget class="QDoubleSpinBox" name="dac7">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="minimum">
+           <double>-10.000000000000000</double>
+          </property>
+          <property name="maximum">
+           <double>9.990000000000000</double>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_17">
+          <property name="maximumSize">
+           <size>
+            <width>16</width>
+            <height>22</height>
+           </size>
+          </property>
+          <property name="text">
+           <string>7</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </widget>
   </widget>
-  <widget class="QMenuBar" name="menuBar">
-   <property name="geometry">
-    <rect>
-     <x>0</x>
-     <y>0</y>
-     <width>612</width>
-     <height>28</height>
-    </rect>
-   </property>
-  </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"/>
  </widget>
  <layoutdefault spacing="6" margin="11"/>
  <resources/>
- <connections>
-  <connection>
-   <sender>horizontalSlider</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>spinBox</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>437</x>
-     <y>341</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>554</x>
-     <y>341</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>horizontalSlider_2</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>spinBox_2</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>113</x>
-     <y>348</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>234</x>
-     <y>348</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>horizontalSlider_3</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>spinBox_3</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>113</x>
-     <y>384</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>234</x>
-     <y>384</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>horizontalSlider_4</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>spinBox_4</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>113</x>
-     <y>420</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>234</x>
-     <y>420</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>horizontalSlider_5</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>spinBox_5</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>113</x>
-     <y>456</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>234</x>
-     <y>456</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>horizontalSlider_6</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>spinBox_6</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>113</x>
-     <y>492</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>234</x>
-     <y>492</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>horizontalSlider_7</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>spinBox_7</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>113</x>
-     <y>528</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>234</x>
-     <y>528</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>horizontalSlider_8</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>spinBox_8</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>113</x>
-     <y>564</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>180</x>
-     <y>569</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>spinBox</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>horizontalSlider</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>234</x>
-     <y>312</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>113</x>
-     <y>312</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>spinBox_2</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>horizontalSlider_2</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>234</x>
-     <y>348</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>113</x>
-     <y>348</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>spinBox_3</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>horizontalSlider_3</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>234</x>
-     <y>384</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>113</x>
-     <y>384</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>spinBox_4</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>horizontalSlider_4</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>234</x>
-     <y>420</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>113</x>
-     <y>420</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>spinBox_5</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>horizontalSlider_5</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>234</x>
-     <y>456</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>113</x>
-     <y>456</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>spinBox_6</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>horizontalSlider_6</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>234</x>
-     <y>492</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>113</x>
-     <y>492</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>spinBox_7</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>horizontalSlider_7</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>234</x>
-     <y>528</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>113</x>
-     <y>528</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>spinBox_8</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>horizontalSlider_8</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>180</x>
-     <y>569</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>113</x>
-     <y>564</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>dac0_slider</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>dac0_spinbox</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>422</x>
-     <y>272</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>553</x>
-     <y>272</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>dac1_slider</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>dac1_spinbox</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>422</x>
-     <y>308</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>553</x>
-     <y>308</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>dac2_slider</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>dac2_spinbox</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>422</x>
-     <y>344</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>553</x>
-     <y>344</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>dac3_slider</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>dac3_spinbox</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>422</x>
-     <y>380</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>553</x>
-     <y>380</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>dac4_slider</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>dac4_spinbox</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>422</x>
-     <y>416</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>553</x>
-     <y>416</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>dac5_slider</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>dac5_spinbox</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>422</x>
-     <y>452</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>553</x>
-     <y>452</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>dac6_slider</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>dac6_spinbox</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>422</x>
-     <y>488</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>553</x>
-     <y>488</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>dac7_slider</sender>
-   <signal>valueChanged(int)</signal>
-   <receiver>dac7_spinbox</receiver>
-   <slot>setValue(int)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>422</x>
-     <y>524</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>553</x>
-     <y>524</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
+ <connections/>
 </ui>
index e7aff60b98a9cbd829f46013de596c93d7ac646c..b5e9ea3a37905833638ed2f75a99f5aa730d5437 100644 (file)
@@ -4,25 +4,25 @@
 
 typedef struct {
        int portno;
-       unsigned int DIN;
        unsigned int DOUT;
-       int DA0;
-       int DA1;
-       int DA2;
-       int DA3;
-       int DA4;
-       int DA5;
-       int DA6;
-       int DA7;
+       unsigned int DIN;
+       double DA0;
+       double DA1;
+       double DA2;
+       double DA3;
+       double DA4;
+       double DA5;
+       double DA6;
+       double DA7;
 
-       int AD0;
-       int AD1;
-       int AD2;
-       int AD3;
-       int AD4;
-       int AD5;
-       int AD6;
-       int AD7;
+       double AD0;
+       double AD1;
+       double AD2;
+       double AD3;
+       double AD4;
+       double AD5;
+       double AD6;
+       double AD7;
 } mf624_io_status_t;
 
 #endif // MF624_IO_STATUS_H
index a37e2732bad91ef8a88e00fb140426d1bdaa09fe..8feb160d39595eab14be88f30c448f68a4a38173 100644 (file)
@@ -19,7 +19,7 @@ socket_thread::socket_thread(QObject *parent)
        sockfd = -1;
 }
 
-void socket_thread::socket_send(const char* str, int val)
+void socket_thread::socket_send(const char* str, double val)
 {
        int n;
        char buffer[256];
@@ -29,9 +29,8 @@ void socket_thread::socket_send(const char* str, int val)
        n = ::write(sockfd, buffer, strlen(buffer));
        if (n < 0) {
                perror("write()");
+               //qDebug() << "MF624 in Qemu not runnig?";
        }
-
-       //qDebug() << "MF624 in Qemu not runnig?";
 }
 
 
@@ -40,14 +39,14 @@ void socket_thread::run()
 #define STRING_BUFF_SIZE       256
        //qDebug() << "Executing in new independant thread, GUI is NOT blocked";
 
-       int portno;
+       //int portno;
        int n;
        int status;
        struct sockaddr_in serv_addr;
        struct hostent *server;
        char read_buffer[STRING_BUFF_SIZE];
        char reg[STRING_BUFF_SIZE+1];
-       int val;
+       float val;
 
 
 
@@ -76,17 +75,29 @@ void socket_thread::run()
                ::exit(1);
        }
 
+       // Client has succesfully connected to server (Qemu); Send status of all registers
+       socket_send("DIN=%d\n", mf624_io_status.DIN);
+       socket_send("ADC0=%f\n", ((MainWindow*) parent())->ui->adc0->value());
+       socket_send("ADC1=%f\n", ((MainWindow*) parent())->ui->adc1->value());
+       socket_send("ADC2=%f\n", ((MainWindow*) parent())->ui->adc2->value());
+       socket_send("ADC3=%f\n", ((MainWindow*) parent())->ui->adc3->value());
+       socket_send("ADC4=%f\n", ((MainWindow*) parent())->ui->adc4->value());
+       socket_send("ADC5=%f\n", ((MainWindow*) parent())->ui->adc5->value());
+       socket_send("ADC6=%f\n", ((MainWindow*) parent())->ui->adc6->value());
+       socket_send("ADC7=%f\n", ((MainWindow*) parent())->ui->adc7->value());
+
 
        while(1) {
                memset(read_buffer, '\0', 256);
                n = read(sockfd, read_buffer, 255);
                if (n < 0) {
                        perror("read()");
-                       sleep(1);
+                       ::exit(2);
                }
 
-               status = sscanf(read_buffer, "%[A-Z0-9]=%i", reg, &val);
+               status = sscanf(read_buffer, "%[A-Z0-9]=%f", reg, &val);
                if (status == 2) {
+                       //printf("%s=%f\n", reg, val);
                        if(!strcmp(reg, "DOUT")) {
                                mf624_io_status.DOUT = val;
                        }
@@ -151,14 +162,14 @@ void socket_thread::run()
                }
 
                // Setting DAC
-               ((MainWindow*) parent())->ui->dac0_slider->setValue(mf624_io_status.DA0);
-               ((MainWindow*) parent())->ui->dac1_slider->setValue(mf624_io_status.DA1);
-               ((MainWindow*) parent())->ui->dac2_slider->setValue(mf624_io_status.DA2);
-               ((MainWindow*) parent())->ui->dac3_slider->setValue(mf624_io_status.DA3);
-               ((MainWindow*) parent())->ui->dac4_slider->setValue(mf624_io_status.DA4);
-               ((MainWindow*) parent())->ui->dac5_slider->setValue(mf624_io_status.DA5);
-               ((MainWindow*) parent())->ui->dac6_slider->setValue(mf624_io_status.DA6);
-               ((MainWindow*) parent())->ui->dac7_slider->setValue(mf624_io_status.DA7);
+               ((MainWindow*) parent())->ui->dac0->setValue(mf624_io_status.DA0);
+               ((MainWindow*) parent())->ui->dac1->setValue(mf624_io_status.DA1);
+               ((MainWindow*) parent())->ui->dac2->setValue(mf624_io_status.DA2);
+               ((MainWindow*) parent())->ui->dac3->setValue(mf624_io_status.DA3);
+               ((MainWindow*) parent())->ui->dac4->setValue(mf624_io_status.DA4);
+               ((MainWindow*) parent())->ui->dac5->setValue(mf624_io_status.DA5);
+               ((MainWindow*) parent())->ui->dac6->setValue(mf624_io_status.DA6);
+               ((MainWindow*) parent())->ui->dac7->setValue(mf624_io_status.DA7);
 
                //printf("%s\n", buffer);
        }
index 1ff0dd6d9ba34bf59a520cc879f48a6d8c233a07..2eaaf1467ac244455ae318f813a38d00041c0390 100644 (file)
@@ -11,7 +11,7 @@ class socket_thread : public QThread
 public:
        socket_thread(QObject *parent);
        void run(); // this is virtual method, we must implement it in our subclass of QThread
-       void socket_send(const char* str, int val);
+       void socket_send(const char* str, double val);
 };
 
 #endif // SOCKET_THREAD_H