/* Neni potreba aktualizovat stav na displeji 25x za sekundu */
if (status != last_status ||
miliseconds_since(&last_sent) > 1000) {
- uoled_display_status(HOK, STATUS_OK);
+ uoled_display_status(ODO, STATUS_OK);
clock_gettime(CLOCK_MONOTONIC, &last_sent);
}
last_status = status;
void rcv_hokuyo_scan_cb(const ORTERecvInfo *info, void *vinstance,
void *recvCallBackParam)
{
+ UDE_hw_status_t status = STATUS_FAILED;
+ static UDE_hw_status_t last_status;
+ static struct timespec last_sent;
//struct hokuyo_scan_type *instance = (struct hokuyo_scan_type *)vinstance;
switch (info->status) {
case NEW_DATA:
- uoled_display_status(HOK, STATUS_OK);
+ status = STATUS_OK;
break;
case DEADLINE:
- uoled_display_status(HOK, STATUS_FAILED);
+ status = STATUS_FAILED;
break;
}
+ if (status != last_status ||
+ miliseconds_since(&last_sent) > 1000) {
+ uoled_display_status(HOK, STATUS_OK);
+ clock_gettime(CLOCK_MONOTONIC, &last_sent);
+ }
+ last_status = status;
}
void rcv_ref_pos_cb (const ORTERecvInfo *info, void *vinstance,