#include <canutils.h>
#include <can_ids.h>
+#include <can_msg_masks.h>
+#include <can_msg_def.h>
#include <sharp.h>
#include <orte.h>
#include <roboorte_eb2008.h>
}
break;
+ case CAN_CMU:
+ orte_eb2008->cmu.color = frame.data[0];
+ ORTEPublicationSend(orte_eb2008->publication_cmu);
+ break;
+
+ case CAN_BUMPER:
+ orte_eb2008->bumper.left = frame.data[0] & LEFT_BUMPER;
+ orte_eb2008->bumper.right = frame.data[0] & RIGHT_BUMPER;
+ ORTEPublicationSend(orte_eb2008->publication_bumper);
+ break;
+
default:
// printf("received CAN msg with unknown id: %x\n",frame.can_id);
break;
eb2008_publisher_laser_meas_create(&orte_eb2008, NULL, NULL);
eb2008_publisher_laser_data_create(&orte_eb2008, NULL, NULL);
eb2008_publisher_sharps_create(&orte_eb2008, NULL, NULL);
+ eb2008_publisher_cmu_create(&orte_eb2008, NULL, NULL);
+ eb2008_publisher_bumper_create(&orte_eb2008, NULL, NULL);
/* creating subscribers */
generic_subscriber_pwr_ctrl_create(&orte_generic,
#lib_LIBRARIES = can
#can_SOURCES =
-include_HEADERS = can_ids.h can_msg_masks.h
+include_HEADERS = can_ids.h can_msg_masks.h can_msg_def.h
return ret;
}
+/****************************************************************/
+/* struct - cmu */
+/****************************************************************/
+
+void cmu_serialize(CDR_Codec *cdrCodec,cmu *object) {
+ CORBA_octet_serialize(cdrCodec,&(object->color));
+}
+
+void
+cmu_deserialize(CDR_Codec *cdrCodec,cmu *object) {
+ CORBA_octet_deserialize(cdrCodec,&(object->color));
+}
+
+int
+cmu_get_max_size(ORTEGetMaxSizeParam *gms) {
+ CORBA_octet_get_max_size(gms);
+ return gms->csize;
+}
+
+Boolean
+cmu_type_register(ORTEDomain *d) {
+ Boolean ret;
+
+ ret=ORTETypeRegisterAdd(d,
+ "cmu",
+ (ORTETypeSerialize)cmu_serialize,
+ (ORTETypeDeserialize)cmu_deserialize,
+ cmu_get_max_size,
+ 0);
+ return ret;
+}
+
+/****************************************************************/
+/* struct - bumper */
+/****************************************************************/
+
+void bumper_serialize(CDR_Codec *cdrCodec,bumper *object) {
+ CORBA_octet_serialize(cdrCodec,&(object->left));
+ CORBA_octet_serialize(cdrCodec,&(object->right));
+}
+
+void
+bumper_deserialize(CDR_Codec *cdrCodec,bumper *object) {
+ CORBA_octet_deserialize(cdrCodec,&(object->left));
+ CORBA_octet_deserialize(cdrCodec,&(object->right));
+}
+
+int
+bumper_get_max_size(ORTEGetMaxSizeParam *gms) {
+ CORBA_octet_get_max_size(gms);
+ CORBA_octet_get_max_size(gms);
+ return gms->csize;
+}
+
+Boolean
+bumper_type_register(ORTEDomain *d) {
+ Boolean ret;
+
+ ret=ORTETypeRegisterAdd(d,
+ "bumper",
+ (ORTETypeSerialize)bumper_serialize,
+ (ORTETypeDeserialize)bumper_deserialize,
+ bumper_get_max_size,
+ 0);
+ return ret;
+}
+
CORBA_double back_right;
};
+#endif
+#if !defined(_cmu_defined)
+#define _cmu_defined 1
+typedef struct cmu_type cmu;
+struct cmu_type {
+CORBA_octet color;
+};
+
+#endif
+#if !defined(_bumper_defined)
+#define _bumper_defined 1
+typedef struct bumper_type bumper;
+struct bumper_type {
+CORBA_octet left;
+CORBA_octet right;
+};
+
#endif
/** impls declarations **/
int sharps_get_max_size(ORTEGetMaxSizeParam *gms);
Boolean sharps_type_register(ORTEDomain *d);
+void cmu_serialize(CDR_Codec *cdrCodec,cmu *object);
+void cmu_deserialize(CDR_Codec *cdrCodec,cmu *object);
+int cmu_get_max_size(ORTEGetMaxSizeParam *gms);
+Boolean cmu_type_register(ORTEDomain *d);
+
+void bumper_serialize(CDR_Codec *cdrCodec,bumper *object);
+void bumper_deserialize(CDR_Codec *cdrCodec,bumper *object);
+int bumper_get_max_size(ORTEGetMaxSizeParam *gms);
+Boolean bumper_type_register(ORTEDomain *d);
+
#ifdef __cplusplus
}
double back_left;
double back_right;
};
+
+struct cmu {
+ octet color;
+};
+
+struct bumper {
+ octet left;
+ octet right;
+};