has been updated to use this new data structure.
int ir_cnt = 0;
unsigned short *las_meas;
int las_mi, las_di, las_bcnt;
+ static unsigned short prev_meas;
int i;
switch(frame.can_id) {
ORTEPublicationSend(orte_eb2008->publication_laser_meas);
}
break;
+
+ case CAN_LAS_DATA:
+ orte_eb2008->laser_data.period = (frame.data[0]<<8)|(frame.data[1]);
+ orte_eb2008->laser_data.measure = (frame.data[2]<<8)|(frame.data[3]);
+ if (prev_meas != orte_eb2008->laser_data.measure)
+ ORTEPublicationSend(orte_eb2008->publication_laser_data);
+ prev_meas = orte_eb2008->laser_data.measure;
+ break;
+
default:
// printf("received CAN msg with unknown id: %x\n",frame.can_id);
break;
generic_publisher_motion_irc_create(&orte_generic, NULL, NULL);
generic_publisher_robot_cmd_create(&orte_generic, NULL, NULL);
eb2008_publisher_laser_meas_create(&orte_eb2008, NULL, NULL);
+ eb2008_publisher_laser_data_create(&orte_eb2008, NULL, NULL);
/* creating subscribers */
generic_subscriber_pwr_ctrl_create(&orte_generic,
return ret;
}
+/****************************************************************/
+/* struct - laser_data */
+/****************************************************************/
+
+void laser_data_serialize(CDR_Codec *cdrCodec,laser_data *object) {
+ CORBA_unsigned_short_serialize(cdrCodec,&(object->period));
+ CORBA_unsigned_short_serialize(cdrCodec,&(object->measure));
+}
+
+void
+laser_data_deserialize(CDR_Codec *cdrCodec,laser_data *object) {
+ CORBA_unsigned_short_deserialize(cdrCodec,&(object->period));
+ CORBA_unsigned_short_deserialize(cdrCodec,&(object->measure));
+}
+
+int
+laser_data_get_max_size(ORTEGetMaxSizeParam *gms) {
+ CORBA_unsigned_short_get_max_size(gms);
+ CORBA_unsigned_short_get_max_size(gms);
+ return gms->csize;
+}
+
+Boolean
+laser_data_type_register(ORTEDomain *d) {
+ Boolean ret;
+
+ ret=ORTETypeRegisterAdd(d,
+ "laser_data",
+ (ORTETypeSerialize)laser_data_serialize,
+ (ORTETypeDeserialize)laser_data_deserialize,
+ laser_data_get_max_size,
+ 0);
+ return ret;
+}
+
/****************************************************************/
/* struct - laser_meas */
/****************************************************************/
CORBA_octet engine;
};
+#endif
+#if !defined(_laser_data_defined)
+#define _laser_data_defined 1
+typedef struct laser_data_type laser_data;
+struct laser_data_type {
+CORBA_unsigned_short period;
+CORBA_unsigned_short measure;
+};
+
#endif
#if !defined(_laser_meas_defined)
#define _laser_meas_defined 1
int laser_cmd_get_max_size(ORTEGetMaxSizeParam *gms);
Boolean laser_cmd_type_register(ORTEDomain *d);
+void laser_data_serialize(CDR_Codec *cdrCodec,laser_data *object);
+void laser_data_deserialize(CDR_Codec *cdrCodec,laser_data *object);
+int laser_data_get_max_size(ORTEGetMaxSizeParam *gms);
+Boolean laser_data_type_register(ORTEDomain *d);
+
void laser_meas_serialize(CDR_Codec *cdrCodec,laser_meas *object);
void laser_meas_deserialize(CDR_Codec *cdrCodec,laser_meas *object);
int laser_meas_get_max_size(ORTEGetMaxSizeParam *gms);
octet engine;
};
+struct laser_data {
+ unsigned short period;
+ unsigned short measure;
+};
+
struct laser_meas {
unsigned short cnt;
unsigned short period;