////////////////////////////////////////////////////////////////////////////////////////////////
+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;
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
}
}
+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)
else
ui->voltage_BAT->setStyleSheet(GREEN);
-
-
-
if( voltage33 < TRESHOLDS_VOLTAGE33 )
ui->voltage_33->setStyleSheet(YELLOW);
else
bool positionIsActual;
} pos;
+ double match_time;
+
signals:
void repaintCompass(void);
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);
</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 "Gentium";
+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/>
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();
}
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)
{
emit color_sig(color);
}
+
+void OrteSignals::time_con(void)
+{
+ emit time_sig(orte.match_time.time);
+}
\ No newline at end of file
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);
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