sharpPuck->setMaximum(250);
layout->addWidget(sharpPuck);
+ layout->addWidget(MiscGui::createLabel("Lift"));
+ liftPos = new QProgressBar();
+ liftPos->setFormat("%v IRC");
+ liftPos->setTextVisible(true);
+ liftPos->setMaximum(1000);
+ layout->addWidget(liftPos);
+
+ layout->addWidget(MiscGui::createLabel("Pusher"));
+ pusherPos = new QProgressBar();
+ pusherPos->setFormat("%v IRC");
+ pusherPos->setTextVisible(true);
+ pusherPos->setMaximum(250);
+ layout->addWidget(pusherPos);
+
sensorsGroupBox->setLayout(layout);
}
case QEVENT(QEV_PUCK_DISTANCE):
sharpPuck->setValue(orte.puck_distance.distance*1000);
break;
+ case QEVENT(QEV_LIFT_PUSHER):
+ liftPos->setValue(orte.actuator_status.lift_pos);
+ pusherPos->setValue(orte.actuator_status.pusher_pos);
+ break;
default:
if (event->type() == QEvent::Close)
closeEvent((QCloseEvent *)event);
rcv_fsm_motion_cb, this);
robottype_subscriber_fsm_act_create(&orte,
rcv_fsm_act_cb, this);
- robottype_subscriber_puck_distance_create(&orte, rcv_puck_distance_cb, this);
- //robottype_subscriber_actuator_status_create(orte, receiveActuatorStatusCallBack, this);
+ robottype_subscriber_puck_distance_create(&orte, generic_rcv_cb, new OrteCallbackInfo(this, QEV_PUCK_DISTANCE));
+ robottype_subscriber_actuator_status_create(&orte, generic_rcv_cb, new OrteCallbackInfo(this, QEV_LIFT_PUSHER));
/*createDISubscriber(this, &orteData);*/
#include "robomon_orte.h"
-
/* ----------------------------------------------------------------------
* PUBLISHERS
* ---------------------------------------------------------------------- */
}
}
-void rcv_puck_distance_cb(const ORTERecvInfo *info, void *vinstance,
- void *arg)
+void generic_rcv_cb(const ORTERecvInfo *info, void *vinstance, void *arg)
{
+ OrteCallbackInfo *i = (OrteCallbackInfo*)arg;
Q_UNUSED(vinstance);
switch (info->status) {
case NEW_DATA:
- POST_QEVENT(arg, QEV_PUCK_DISTANCE);
+ POST_QEVENT(i->receiver, i->qev);
break;
case DEADLINE:
- printf("fsm_motion deadline occurred\n");
break;
}
}
QCoreApplication::postEvent((QObject *)(receiver), \
new QEvent(QEVENT(event)))
-enum {
+enum robomon_qev {
QEV_MOTION_STATUS = 0,
QEV_MOTION_IRC,
QEV_ACTUAL_POSITION,
QEV_FSM_ACT,
QEV_FSM_MOTION,
QEV_PUCK_DISTANCE,
+ QEV_LIFT_PUSHER,
+};
+
+class OrteCallbackInfo {
+public:
+ QObject *receiver;
+ enum robomon_qev qev;
+
+OrteCallbackInfo(QObject *areceiver, enum robomon_qev aqev) :
+ receiver(areceiver), qev(aqev) {};
};
+
#define FRONT_DOOR 1
#define INNER_DOOR 4
#define BACK_DOOR 0
void *vinstance, void *arg);
void rcv_fsm_motion_cb(const ORTERecvInfo *info,
void *vinstance, void *arg);
-void rcv_puck_distance_cb(const ORTERecvInfo *info, void *vinstance,
- void *arg);
+void generic_rcv_cb(const ORTERecvInfo *info, void *vinstance, void *arg);
#endif /* ROBOMON_ORTE_H */