]> rtime.felk.cvut.cz Git - eurobot/public.git/commitdiff
display-qt: Add match time display.
authorMichal Vokac <vokac.m@gmail.com>
Tue, 24 May 2011 00:12:41 +0000 (02:12 +0200)
committerMichal Vokac <vokac.m@gmail.com>
Tue, 24 May 2011 00:12:41 +0000 (02:12 +0200)
src/display-qt/display_orte.cpp
src/display-qt/display_orte.h
src/display-qt/displayqt.cpp
src/display-qt/displayqt.h
src/display-qt/displayqt.ui
src/display-qt/main.cpp
src/display-qt/ortesignals.cpp
src/display-qt/ortesignals.h

index 2e4005d4629cc77f5df0b31c0fbdedd914e672dd..ea37bfd60b45f5a3af4220ed55bd99adfcc59834 100644 (file)
@@ -51,6 +51,29 @@ bool miliseconds_elapsed_since(struct timespec *t, unsigned miliseconds)
 
 ////////////////////////////////////////////////////////////////////////////////////////////////
 
+void rcv_match_time_cb (const ORTERecvInfo *info, void *vinstance, void *recvCallBackParam)
+{
+       OrteSignals *inst=(OrteSignals *)recvCallBackParam;
+       UDE_hw_status_t status = STATUS_FAILED;
+       static UDE_hw_status_t last_status;
+       static struct timespec last_sent;
+        switch (info->status) {
+               case NEW_DATA:
+                       inst->time_con();
+                       status = STATUS_OK;
+                       break;
+               case DEADLINE:
+                       status = STATUS_FAILED;
+                       break;
+       }
+//     if (status != last_status ||
+//         miliseconds_elapsed_since(&last_sent, 1000)) {
+//             inst->status_con(PWR, status);
+//             clock_gettime(CLOCK_MONOTONIC, &last_sent);
+//     }
+//     last_status = status;
+}
+
 void rcv_pwr_voltage_cb (const ORTERecvInfo *info, void *vinstance, void *recvCallBackParam)
 {
        OrteSignals *inst=(OrteSignals *)recvCallBackParam;
index 045497308b05e58bbbafd5f7b6efb9768303a5c2..929b84bbb2241546a44385640e9fa256269373a8 100644 (file)
@@ -36,4 +36,6 @@ void rcv_fsm_act_cb(const ORTERecvInfo *info, void *vinstance, void *recvCallBac
 
 void rcv_fsm_motion_cb(const ORTERecvInfo *info, void *vinstance, void *recvCallBackParam);
 
+void rcv_match_time_cb(const ORTERecvInfo *info, void *vinstance, void *recvCallBackParam);
+
 #endif
index 843f01dcb2bd45c0cfe760800f30f06538adb039..c59c138ebe5ba3e4d04c5d4dac7e6ac80cd95aaf 100644 (file)
@@ -117,6 +117,13 @@ void DisplayQT::alive(void)
        }
 }
 
+void DisplayQT::display_time(double time) {
+
+       this->match_time = 90 - time;
+
+       ui->matchTime->display(match_time);
+}
+
 // 0-modra
 // 1-cervena
 void DisplayQT::setTeamColor(char color)
@@ -268,9 +275,6 @@ void DisplayQT::display_voltage(double voltage33, double voltage50, double volta
        else
                ui->voltage_BAT->setStyleSheet(GREEN);
 
-
-
-
        if( voltage33 < TRESHOLDS_VOLTAGE33 )
                ui->voltage_33->setStyleSheet(YELLOW);
        else
index 064ded19e42fd53da980c076ac21dc619edb1dc4..67b2d80b6c7d707f00c1559461cd038cfa1159f9 100644 (file)
@@ -35,6 +35,8 @@ private:
                bool positionIsActual;
        } pos;
 
+       double match_time;
+
 signals:
        void repaintCompass(void);
 
@@ -43,6 +45,7 @@ public slots:
        void setTeamColor(char color);
        void setPosition(double x, double y, double phi);
        ///
+       void display_time(double time);
        void display_status(UDE_component_t c, UDE_hw_status_t s);
        void display_fsm(UDE_fsm_t fsm, QString state);
        void display_voltage(double voltage33, double voltage50, double voltage80, double voltageBAT);
index bc72914f0f18c91148e022df6320196e0b544399..f8e75869e1b5afbf264fc4a5fbda07a342d97e60 100644 (file)
@@ -583,6 +583,50 @@ padding-left:5px;</string>
     </item>
    </layout>
   </widget>
+  <widget class="QLCDNumber" name="matchTime">
+   <property name="geometry">
+    <rect>
+     <x>110</x>
+     <y>60</y>
+     <width>221</width>
+     <height>71</height>
+    </rect>
+   </property>
+   <property name="font">
+    <font>
+     <family>Gentium</family>
+     <pointsize>9</pointsize>
+     <weight>50</weight>
+     <italic>false</italic>
+     <bold>false</bold>
+    </font>
+   </property>
+   <property name="layoutDirection">
+    <enum>Qt::LeftToRight</enum>
+   </property>
+   <property name="styleSheet">
+    <string notr="true">font: 9pt &quot;Gentium&quot;;
+background-color: rgb(255, 255, 0)</string>
+   </property>
+   <property name="smallDecimalPoint">
+    <bool>true</bool>
+   </property>
+   <property name="numDigits">
+    <number>5</number>
+   </property>
+   <property name="digitCount">
+    <number>5</number>
+   </property>
+   <property name="mode">
+    <enum>QLCDNumber::Dec</enum>
+   </property>
+   <property name="segmentStyle">
+    <enum>QLCDNumber::Filled</enum>
+   </property>
+   <property name="value" stdset="0">
+    <double>90.000000000000000</double>
+   </property>
+  </widget>
  </widget>
  <layoutdefault spacing="6" margin="11"/>
  <resources/>
index 50c4231639be7eadf72499b52a86ab881da94e6b..89b95e7efaacf92a075a6dcd1a0c03dc27dfa67c 100644 (file)
@@ -34,6 +34,9 @@ int main(int argc, char *argv[])
        QObject::connect(&ortesig, SIGNAL(color_sig(char)),
                                        &disp, SLOT(setTeamColor(char)));
 
+       QObject::connect(&ortesig, SIGNAL(time_sig(double)),
+                                       &disp, SLOT(display_time(double)));
+
 
     return a.exec();
 }
index 6101718b55ea9fcd2e79d9312f274359473e9f89..265c357531d8272a4fad71480fbcba80a1a81010 100644 (file)
@@ -26,6 +26,7 @@ void OrteSignals::createOrte()
        robottype_subscriber_fsm_motion_create(&orte, rcv_fsm_motion_cb, this);
        robottype_subscriber_robot_cmd_create(&orte, rcv_robot_cmd_cb, this);
        robottype_subscriber_robot_switches_create(&orte, rcv_robot_swicthes_cb, this);
+       robottype_subscriber_match_time_create(&orte, rcv_match_time_cb, this);
 }
 
 void OrteSignals::fsm_con(UDE_fsm_t fsm, QString state)
@@ -53,3 +54,8 @@ void OrteSignals::color_con(char color)
 {
        emit color_sig(color);
 }
+
+void OrteSignals::time_con(void)
+{
+       emit time_sig(orte.match_time.time);
+}
\ No newline at end of file
index 72403d237539fd52d0bafc2201b7d029dc6e2fa5..7a40b62af449f8a3bf5fb275543c8b2d3fda1226 100644 (file)
@@ -28,6 +28,7 @@ public:
        void position_con(void);
        void pwr_con(void);
        void color_con(char color);
+       void time_con(void);
 
 signals:
        void fsm_sig(UDE_fsm_t fsm, QString state);
@@ -35,6 +36,7 @@ signals:
        void position_sig(double x, double y, double phi);
        void pwr_sig(double voltage33, double voltage50, double voltage80, double voltageBAT);
        void color_sig(char color);
+       void time_sig(double time);
 };
 
 #endif