robomon_orte.h

00001 //
00002 // C++ Interface: robomon_orte
00003 //
00004 // Description: 
00005 //
00006 //
00007 // Author: Martin Zidek,,, <martin@martin-laptop>, (C) 2007
00008 //
00009 // Copyright: See COPYING file that comes with this distribution
00010 //
00011 //
00012 #include <orte.h>
00013 #ifdef CONFIG_ORTE_RTL
00014   #include <linux/module.h>
00015   #include <posix/pthread.h>
00016   #define printf rtl_printf
00017 #elif defined CONFIG_ORTE_RTAI
00018   #include <linux/module.h>
00019   #include <rtai/compat.h>  
00020   #define printf rt_printk
00021 #else
00022   #include <stdio.h>
00023 #endif
00024 
00025 #include <RobotType.h>
00026 #include <RobotTypeArr.h>
00027 
00028 ORTEDomain *d;
00029 ORTEPublication *publisherDO;
00030 ORTEPublication *publisherMotor;
00031 ORTEPublication *publisherServa;
00032 ORTEPublication *publisherJoy;
00033 
00034 
00035 unsigned int accelRecv[3];
00036 stateDigIn stateDI;
00037 uint16_t stateIR;
00038 unsigned char stateIR2;
00039 bool stateDO[8];
00040 short int motorSpeedCmd[2];
00041 uint16_t sharpToRecv[4];
00042 //uint8_t serva[8];
00043 
00044 motionStatus ms;
00045 motionSpeed mspeed;
00046 stateInnerIR sir;
00047 sharpLongs ss1;
00048 sharpShorts ss2;
00049 stateServa serva;
00050 position pozice;
00051 joyData joy;
00052 
00053 void sendCallBackServo(const ORTESendInfo *info,void *vinstance, void *sendCallBackParam);
00054 
00055 void *publisherCreateServo(void *arg) {
00056         ORTEPublication     *p;
00057         NtpTime             persistence, delay;
00058 
00059         stateServa_type_register(d);
00060         NTPTIME_BUILD(persistence,3);
00061         NTPTIME_BUILD(delay,1); 
00062         publisherServa=ORTEPublicationCreate(d, "serva", "stateServa", &serva, &persistence, 2, NULL, arg, &delay);
00063         return arg;
00064 }
00065 
00066 void *publisherCreateJoy(void *arg) {
00067         ORTEPublication     *p;
00068         NtpTime             persistence, delay;
00069 
00070         joyData_type_register(d);
00071         NTPTIME_BUILD(persistence,3);
00072         NTPTIME_BUILD(delay,1); 
00073         publisherJoy=ORTEPublicationCreate(d, "joy", "joyData", &joy, &persistence, 1, NULL, arg, &delay);
00074         return arg;
00075 }
00076 
00077 void *publisherDOCreate(void *arg) {
00078         ORTEPublication     *p;
00079         NtpTime             persistence, delay;
00080 
00081         ORTETypeRegisterAdd(d,"DOMsg",NULL,NULL,NULL,sizeof(stateDO));
00082         NTPTIME_BUILD(persistence,3);
00083         NTPTIME_BUILD(delay,1); 
00084         publisherDO=ORTEPublicationCreate(d, "DO", "DOMsg", &stateDO, &persistence, 1, NULL,  NULL, &delay);
00085         return arg;
00086 }
00087 
00088 void *publisherMotorCreate(void *arg) {
00089         ORTEPublication     *p;
00090         NtpTime             persistence, delay;
00091 
00092         motionSpeed_type_register(d);
00093         //ORTETypeRegisterAdd(d,"MotorCmdMsg",NULL,NULL,NULL,sizeof(motorSpeedCmd));
00094         NTPTIME_BUILD(persistence,3);
00095         NTPTIME_BUILD(delay,1); 
00096         publisherMotor=ORTEPublicationCreate(d, "motor", "motionSpeed", &mspeed, &persistence, 2, NULL,  NULL, &delay);
00097         return arg;
00098 }
00099 
00100 
00101 void *orte_function( void *ptr )
00102 {
00103         ORTEInit();
00104         ORTEVerbositySetOptions("ALL.0");
00105         d=ORTEDomainAppCreate(ORTE_DEFAULT_DOMAIN,NULL,NULL,ORTE_FALSE);
00106         
00107         if (!d) {
00108                 printf("ORTEDomainAppCreate failed!\n");
00109         }
00110 //      publisherCreateServo(ptr);
00111         publisherCreateJoy(ptr);                
00112 //      publisherDOCreate(NULL);
00113         publisherMotorCreate(NULL);
00114         return NULL;    
00115 }

Generated on Thu Sep 13 11:28:28 2007 for DCE-Eurobot by  doxygen 1.5.3