#define __robot_lock_sharps lock
#define __robot_lock_hokuyo lock
#define __robot_lock_sick lock
+#define __robot_lock_sick551 lock
#define __robot_lock_cmu lock
#define __robot_lock_bumper lock
#define __robot_lock_disp lock_disp
COMPONENT_LIFT,
ROBOT_COMPONENT_NUMBER
+ COMPONENT_SICK551,
};
/* robot's main data structure */
struct lidar_scan_type sick;
bool ignore_sick;
+ struct lidar_scan_type sick551;
+ bool ignore_sick551;
+
/* variables for target detection */
bool target_loaded;
bool target_valid;
}
}
+void rcv_sick551_scan_cb(const ORTERecvInfo *info, void *vinstance,
+ void *recvCallBackParam)
+{
+ struct lidar_scan_type *instance = (struct lidar_scan_type *)vinstance;
+
+ switch (info->status) {
+ case NEW_DATA: {
+ ROBOT_LOCK(sick551);
+ robot.sick551 = *instance;
+ robot.status[COMPONENT_SICK551] = STATUS_OK;
+ ROBOT_UNLOCK(sick551);
+ if(!robot.ignore_sick551)
+ {
+ update_map_lidar(&sick551_params, instance);
+ }
+ break;
+ }
+ case DEADLINE:
+ robot.status[COMPONENT_SICK551] = STATUS_FAILED;
+ DBG("%s: ORTE deadline occurred\n", __FUNCTION__);
+ break;
+ }
+}
+
void rcv_camera_result_cb(const ORTERecvInfo *info, void *vinstance,
void *recvCallBackParam)
{