本文整理汇总了C++中rtmGetErrorStatus函数的典型用法代码示例。如果您正苦于以下问题:C++ rtmGetErrorStatus函数的具体用法?C++ rtmGetErrorStatus怎么用?C++ rtmGetErrorStatus使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rtmGetErrorStatus函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: baseRateTask
void baseRateTask(void *arg)
{
runModel = (rtmGetErrorStatus(Model_M) == (NULL)) && !rtmGetStopRequested
(Model_M);
while (runModel) {
mw_osSemaphoreWaitEver(&baserateTaskSem);
/* External mode */
{
boolean_T rtmStopReq = false;
rtExtModePauseIfNeeded(Model_M->extModeInfo, 1, &rtmStopReq);
if (rtmStopReq) {
rtmSetStopRequested(Model_M, true);
}
if (rtmGetStopRequested(Model_M) == true) {
rtmSetErrorStatus(Model_M, "Simulation finished");
break;
}
}
Model_step();
/* Get model outputs here */
rtExtModeCheckEndTrigger();
runModel = (rtmGetErrorStatus(Model_M) == (NULL)) && !rtmGetStopRequested
(Model_M);
}
runModel = 0;
terminateTask(arg);
taskDelete((void *)0);
}
开发者ID:FernbankLINKSRobotics,项目名称:GeorgiaBEST16,代码行数:33,代码来源:ert_main.c
示例2: main
int main(void)
{
volatile boolean_T runModel = 1;
float modelBaseRate = 2.0;
float systemClock = 0;
init();
MW_Arduino_Init();
rtmSetErrorStatus(test_motor_M, 0);
/* initialize external mode */
rtParseArgsForExtMode(0, NULL);
test_motor_initialize();
sei();
/* External mode */
rtSetTFinalForExtMode(&rtmGetTFinal(test_motor_M));
rtExtModeCheckInit(1);
{
boolean_T rtmStopReq = false;
rtExtModeWaitForStartPkt(test_motor_M->extModeInfo, 1, &rtmStopReq);
if (rtmStopReq) {
rtmSetStopRequested(test_motor_M, true);
}
}
rtERTExtModeStartMsg();
cli();
configureArduinoAVRTimer();
runModel =
(rtmGetErrorStatus(test_motor_M) == (NULL)) && !rtmGetStopRequested
(test_motor_M);
sei();
sei();
while (runModel) {
/* External mode */
{
boolean_T rtmStopReq = false;
rtExtModeOneStep(test_motor_M->extModeInfo, 1, &rtmStopReq);
if (rtmStopReq) {
rtmSetStopRequested(test_motor_M, true);
}
}
runModel =
(rtmGetErrorStatus(test_motor_M) == (NULL)) && !rtmGetStopRequested
(test_motor_M);
}
rtExtModeShutdown(1);
/* Disable rt_OneStep() here */
/* Terminate model */
test_motor_terminate();
cli();
return 0;
}
开发者ID:Derilion,项目名称:dh_arduino,代码行数:58,代码来源:ert_main.c
示例3: baseRateTask
void baseRateTask(void *arg)
{
runModel = (rtmGetErrorStatus(ArduinoSim_M) == (NULL));
while (runModel) {
sem_wait(&baserateTaskSem);
ArduinoSim_step();
// Get model outputs here
runModel = (rtmGetErrorStatus(ArduinoSim_M) == (NULL));
}
sem_post(&termSem);
pthread_exit((void *)0);
}
开发者ID:NTNU-MCS,项目名称:CS_Saucer_ROS,代码行数:14,代码来源:ert_main.cpp
示例4: rt_OneStep
/* Function: rtOneStep ========================================================
*
* Abstract:
* Perform one step of the model.
*/
static void rt_OneStep(RT_MODEL *S)
{
real_T tnext;
/***********************************************
* Check and see if error status has been set *
***********************************************/
if (rtmGetErrorStatus(S) != NULL) {
GBLbuf.stopExecutionFlag = 1;
return;
}
/* enable interrupts here */
tnext = rt_SimGetNextSampleHit();
rtsiSetSolverStopTime(rtmGetRTWSolverInfo(S),tnext);
outputs(S, 0);
rtExtModeSingleTaskUpload(S);
update(S, 0);
rt_SimUpdateDiscreteTaskSampleHits(rtmGetNumSampleTimes(S),
rtmGetTimingData(S),
rtmGetSampleHitPtr(S),
rtmGetTPtr(S));
if (rtmGetSampleTime(S,0) == CONTINUOUS_SAMPLE_TIME) {
rt_UpdateContinuousStates(S);
}
rtExtModeCheckEndTrigger();
} /* end rtOneStep */
开发者ID:ChristopherMcFaul,项目名称:Previous-Work,代码行数:33,代码来源:Crane_main.c
示例5: main
/*
* The example "main" function illustrates what is required by your
* application code to initialize, execute, and terminate the generated code.
* Attaching rt_OneStep to a real-time clock is target specific. This example
* illustates how you do this relative to initializing the model.
*/
int_T main(int_T argc, const char_T *argv[])
{
/* Initialize model */
Pos_Controller_initialize();
/* Attach rt_OneStep to a timer or interrupt service routine with
* period 0.005 seconds (the model's base sample time) here. The
* call syntax for rt_OneStep is
*
* rt_OneStep();
*/
printf("Warning: The simulation will run forever. "
"Generated ERT main won't simulate model step behavior. "
"To change this behavior select the 'MAT-file logging' option.\n");
fflush((NULL));
while (rtmGetErrorStatus(Pos_Controller_M) == (NULL)) {
/* Perform other application tasks here */
}
/* Disable rt_OneStep() here */
/* Terminate model */
Pos_Controller_terminate();
return 0;
}
开发者ID:julesw,项目名称:ardrone_loclib,代码行数:31,代码来源:ert_main.cpp
示例6: baseRateTask
void baseRateTask(void *arg)
{
runModel = (rtmGetErrorStatus(main_M) == (NULL)) && !rtmGetStopRequested
(main_M);
while (runModel) {
sem_wait(&baserateTaskSem);
main_step();
/* Get model outputs here */
runModel = (rtmGetErrorStatus(main_M) == (NULL)) && !rtmGetStopRequested
(main_M);
}
sem_post(&termSem);
pthread_exit((void *)0);
}
开发者ID:MagnusBlomberg,项目名称:Hugin,代码行数:16,代码来源:ert_main.c
示例7: baseRateTask
void baseRateTask(void *arg)
{
baseRateInfo_t info = *((baseRateInfo_t *)arg);
MW_setTaskPeriod(info.period, info.signo);
while ((rtmGetErrorStatus(motorControlTask_M) == (NULL)) &&
!rtmGetStopRequested(motorControlTask_M) ) {
/* Wait for the next timer interrupt */
if (MW_sigWaitWithOverrunDetection(&info.sigMask) == 1) {
printf("Overrun - rate for base rate task too fast.\n");
fflush(stdout);
}
/* External mode */
{
boolean_T rtmStopReq = false;
rtExtModePauseIfNeeded(motorControlTask_M->extModeInfo, 2, &rtmStopReq);
if (rtmStopReq) {
rtmSetStopRequested(motorControlTask_M, true);
}
if (rtmGetStopRequested(motorControlTask_M) == true) {
rtmSetErrorStatus(motorControlTask_M, "Simulation finished");
break;
}
}
/* External mode */
{
boolean_T rtmStopReq = false;
rtExtModeOneStep(motorControlTask_M->extModeInfo, 2, &rtmStopReq);
if (rtmStopReq) {
rtmSetStopRequested(motorControlTask_M, true);
}
}
motorControlTask_output();
/* Get model outputs here */
/* External mode */
rtExtModeUploadCheckTrigger(2);
{ /* Sample time: [0.0s, 0.0s] */
rtExtModeUpload(0, motorControlTask_M->Timing.t[0]);
}
{ /* Sample time: [0.02s, 0.0s] */
rtExtModeUpload(1, ((motorControlTask_M->Timing.clockTick1) * 0.02));
}
motorControlTask_update();
rtExtModeCheckEndTrigger();
} /* while */
sem_post(&stopSem);
}
开发者ID:gte999s,项目名称:QuadCopter,代码行数:56,代码来源:ert_main.c
示例8: main
/*
* The example "main" function illustrates what is required by your
* application code to initialize, execute, and terminate the generated code.
* Attaching rt_OneStep to a real-time clock is target specific. This example
* illustates how you do this relative to initializing the model.
*/
int_T main(int_T argc, const char *argv[])
{
/* Unused arguments */
(void)(argc);
(void)(argv);
/* Pack model data into RTM */
DroneRS_Compensator_M->ModelData.defaultParam = &DroneRS_Compensator_P;
DroneRS_Compensator_M->ModelData.blockIO = &DroneRS_Compensator_B;
DroneRS_Compensator_M->ModelData.dwork = &DroneRS_Compensator_DW;
/* Initialize model */
DroneRS_Compensator_initialize(DroneRS_Compensator_M,
&DroneRS_Compensator_U_controlModePosVSAtt_flagin,
DroneRS_Compensator_U_pos_refin, DroneRS_Compensator_U_attRS_refin,
&DroneRS_Compensator_U_ddx, &DroneRS_Compensator_U_ddy,
&DroneRS_Compensator_U_ddz, &DroneRS_Compensator_U_p,
&DroneRS_Compensator_U_q, &DroneRS_Compensator_U_r,
&DroneRS_Compensator_U_altitude_sonar, &DroneRS_Compensator_U_prs,
DroneRS_Compensator_U_opticalFlowRS_datin,
DroneRS_Compensator_U_sensordatabiasRS_datin,
DroneRS_Compensator_U_posVIS_datin, &DroneRS_Compensator_U_usePosVIS_flagin,
DroneRS_Compensator_U_batteryStatus_datin,
DroneRS_Compensator_Y_motorsRS_cmdout, &DroneRS_Compensator_Y_X,
&DroneRS_Compensator_Y_Y, &DroneRS_Compensator_Y_Z,
&DroneRS_Compensator_Y_yaw, &DroneRS_Compensator_Y_pitch,
&DroneRS_Compensator_Y_roll, &DroneRS_Compensator_Y_dx,
&DroneRS_Compensator_Y_dy, &DroneRS_Compensator_Y_dz,
&DroneRS_Compensator_Y_pb, &DroneRS_Compensator_Y_qb,
&DroneRS_Compensator_Y_rb,
&DroneRS_Compensator_Y_controlModePosVSAtt_flagout,
DroneRS_Compensator_Y_poseRS_refout, &DroneRS_Compensator_Y_ddxb,
&DroneRS_Compensator_Y_ddyb, &DroneRS_Compensator_Y_ddzb,
&DroneRS_Compensator_Y_pa, &DroneRS_Compensator_Y_qa,
&DroneRS_Compensator_Y_ra, &DroneRS_Compensator_Y_altitude_sonarb,
&DroneRS_Compensator_Y_prsb, DroneRS_Compensator_Y_opticalFlowRS_datout,
DroneRS_Compensator_Y_sensordatabiasRS_datout,
DroneRS_Compensator_Y_posVIS_datout,
&DroneRS_Compensator_Y_usePosVIS_flagout,
DroneRS_Compensator_Y_batteryStatus_datout);
/* The MAT-file logging option selected; therefore, simulating
* the model step behavior (in non real-time). Running this
* code produces results that can be loaded into MATLAB.
*/
while (rtmGetErrorStatus(DroneRS_Compensator_M) == (NULL)) {
rt_OneStep(DroneRS_Compensator_M);
}
/* Matfile logging */
rt_StopDataLogging(MATFILE, DroneRS_Compensator_M->rtwLogInfo);
/* Disable rt_OneStep() here */
return 0;
}
开发者ID:sudotong,项目名称:class1630,代码行数:61,代码来源:ert_main.c
示例9: main
/* The "main" function initializes and executes the generated code.
*/
int_T main(int_T argc, const char_T *argv[])
{
/************************
* initialize the model *
************************/
#define LATCH_0_31_IMB_INTERRUPT_LEVELS 3 /* Enable all IRQ levels on the UIMB */
initIrqModule(LATCH_0_31_IMB_INTERRUPT_LEVELS);
/* Initialize model */
exp03_initialize(1);
{
float period ;
/* Set the timeout period of the Programmable Interrupt Timer
* which will driver rtOneStep */
setPitModuleIrqLevel(RT_ONE_STEP_IRQ);
period = setPitPeriod(TIMER_TICK_PERIOD, OSCILLATOR_FREQ);
if (period < 0) {
/* Unable to achive this period */
exit(1);
}
}
#if INTEGER_CODE==0
registerIRQ_Handler( RT_ONE_STEP_IRQ, rt_OneStep , NULL , FLOAT_USED_IN_ISR);
#else
registerIRQ_Handler( RT_ONE_STEP_IRQ, rt_OneStep , NULL ,
FLOAT_NOT_USED_IN_ISR);
#endif
EnablePitFreeze; /* Make sure we can stop the ISR during debug */
EnablePitInterrupt; /* Enable the timer interrupt */
EnablePit; /* Start the timer counting */
/* Enable External Interrupts */
EIE();
while (rtmGetErrorStatus(exp03_M) == NULL) {
boolean_T rtmStopReq = false;
/* Optionally call an extern Background Task */
#ifdef __BACKGROUNDTASK__
BACKGROUNDTASK();
#endif
}
}
开发者ID:djulzz,项目名称:MPC-565,代码行数:56,代码来源:mpc555_main.c
示例10: rt_OneStep
/* rt_OneStep is called from a timer interrupt service routine. It is called at
* the base-rate of the model.
*/
void rt_OneStep(MPC555_IRQ_LEVEL level)
{
/* Clear the interrupt that triggered this function */
ClearPitIRQ;
/***********************************************
* Check if base-rate step time is too fast *
***********************************************/
if (OverrunFlags[0] > BASE_RATE_MAX_OVERRUNS) {
rtmSetErrorStatus(exp03_M, "Overrun");
}
/*************************************************
* Check if an error status has been set *
* by an overrun or by the generated code. *
*************************************************/
if (rtmGetErrorStatus(exp03_M) != NULL) {
return;
}
/***********************************************
* Increment the overruns flag
***********************************************/
if (OverrunFlags[0]++) {
return;
}
while (OverrunFlags[0] > 0 ) {
/* Re-enable interrupts here */
EIE();
/* Set model inputs here */
/**************
* Step model *
**************/
exp03_step();
/* Get model outputs here */
/* Get model outputs here */
/* Service Watchdog Timer */
SERVICE_WATCHDOG_TIMER;
/* Disable interrupts */
EID();
/**************************
* Decrement overrun flag *
**************************/
OverrunFlags[0]--;
}
}
开发者ID:djulzz,项目名称:MPC-565,代码行数:57,代码来源:mpc555_main.c
示例11: baseRateTask
void baseRateTask(void *arg)
{
baseRateInfo_t info = *((baseRateInfo_t *)arg);
MW_setTaskPeriod(info.period, info.signo);
while ((rtmGetErrorStatus(Serial_M) == (NULL)) && !rtmGetStopRequested
(Serial_M) ) {
/* Wait for the next timer interrupt */
MW_sigWait(&info.sigMask);
/* External mode */
{
boolean_T rtmStopReq = false;
rtExtModePauseIfNeeded(Serial_M->extModeInfo, 2, &rtmStopReq);
if (rtmStopReq) {
rtmSetStopRequested(Serial_M, true);
}
if (rtmGetStopRequested(Serial_M) == true) {
rtmSetErrorStatus(Serial_M, "Simulation finished");
break;
}
}
/* External mode */
{
boolean_T rtmStopReq = false;
rtExtModeOneStep(Serial_M->extModeInfo, 2, &rtmStopReq);
if (rtmStopReq) {
rtmSetStopRequested(Serial_M, true);
}
}
Serial_output();
/* Get model outputs here */
/* External mode */
rtExtModeUploadCheckTrigger(2);
{ /* Sample time: [0.0s, 0.0s] */
rtExtModeUpload(0, Serial_M->Timing.t[0]);
}
{ /* Sample time: [0.05s, 0.0s] */
rtExtModeUpload(1, ((Serial_M->Timing.clockTick1) * 0.05));
}
Serial_update();
rtExtModeCheckEndTrigger();
} /* while */
sem_post(&stopSem);
}
开发者ID:omcaree,项目名称:AutonomousQuadcopter,代码行数:53,代码来源:ert_main.c
示例12: model1_initialize
/* Model initialize function */
void model1_initialize(void)
{
/* Registration code */
/* initialize non-finites */
rt_InitInfAndNaN(sizeof(real_T));
/* initialize real-time model */
(void) memset((void *)model1_M, 0,
sizeof(RT_MODEL_model1_T));
rtmSetTFinal(model1_M, 2.0);
model1_M->Timing.stepSize0 = 5.0E-5;
/* Setup for data logging */
{
static RTWLogInfo rt_DataLoggingInfo;
model1_M->rtwLogInfo = &rt_DataLoggingInfo;
}
/* Setup for data logging */
{
rtliSetLogXSignalInfo(model1_M->rtwLogInfo, (NULL));
rtliSetLogXSignalPtrs(model1_M->rtwLogInfo, (NULL));
rtliSetLogT(model1_M->rtwLogInfo, "tout");
rtliSetLogX(model1_M->rtwLogInfo, "");
rtliSetLogXFinal(model1_M->rtwLogInfo, "");
rtliSetLogVarNameModifier(model1_M->rtwLogInfo, "rt_");
rtliSetLogFormat(model1_M->rtwLogInfo, 0);
rtliSetLogMaxRows(model1_M->rtwLogInfo, 1000);
rtliSetLogDecimation(model1_M->rtwLogInfo, 1);
rtliSetLogY(model1_M->rtwLogInfo, "");
rtliSetLogYSignalInfo(model1_M->rtwLogInfo, (NULL));
rtliSetLogYSignalPtrs(model1_M->rtwLogInfo, (NULL));
}
/* states (dwork) */
(void) memset((void *)&model1_DW, 0,
sizeof(DW_model1_T));
/* Matfile logging */
rt_StartDataLoggingWithStartTime(model1_M->rtwLogInfo, 0.0, rtmGetTFinal
(model1_M), model1_M->Timing.stepSize0, (&rtmGetErrorStatus(model1_M)));
/* Enable for Sin: '<S11>/Sine Wave A' */
model1_DW.systemEnable = 1;
/* Enable for Sin: '<S11>/Sine Wave B' */
model1_DW.systemEnable_i = 1;
/* Enable for Sin: '<S11>/Sine Wave C' */
model1_DW.systemEnable_g = 1;
}
开发者ID:hasans3,项目名称:cps_project,代码行数:53,代码来源:model1.c
示例13: main
/* Function: main -------------------------------------------
*
* Abstract:
* Entry point into the code.
*/
void main(void)
{
volatile boolean_T noErr;
init_board();
rtmSetErrorStatus(Batman_Code_M, 0);
Batman_Code_initialize();
config_schedulerTimer();
noErr =
rtmGetErrorStatus(Batman_Code_M) == (NULL);
enable_interrupts();
while (noErr ) {
idletask_num1();
noErr =
rtmGetErrorStatus(Batman_Code_M) == (NULL);
}
/* Disable rt_OneStep() here */
/* Terminate model */
Batman_Code_terminate();
disable_interrupts();
}
开发者ID:M118-project,项目名称:M118_project,代码行数:27,代码来源:Batman_Code_main.c
示例14: main
int main(void)
{
nrk_setup_ports();
volatile boolean_T noErr;
float modelBaseRate = 0.5;
float systemClock = 0;
SystemCoreClockUpdate();
UNUSED(modelBaseRate);
UNUSED(systemClock);
rtmSetErrorStatus(simulinkmodeltoblinkLed_M, 0);
simulinkmodeltoblinkLed_initialize();
/* No scheduler to configure */
;
noErr =
rtmGetErrorStatus(simulinkmodeltoblinkLed_M) == (NULL);
/* No interrupts to enable */
;
;
while (noErr ) {
rt_OneStep();
noErr =
rtmGetErrorStatus(simulinkmodeltoblinkLed_M) == (NULL);
}
/* Disable rt_OneStep() here */
/* Terminate model */
simulinkmodeltoblinkLed_terminate();
;
nrk_led_set (RED_LED);
return 0;
}
开发者ID:ESE519,项目名称:EVM-2013,代码行数:39,代码来源:main.cpp
示例15: baseRateTask
void baseRateTask(void *arg)
{
baseRateInfo_t info = *((baseRateInfo_t *)arg);
MW_setTaskPeriod(info.period, info.signo);
while ((rtmGetErrorStatus(raspberrypi_audioequalizer_M) == (NULL)) &&
!rtmGetStopRequested(raspberrypi_audioequalizer_M) ) {
/* Wait for the next timer interrupt */
MW_sigWait(&info.sigMask);
/* External mode */
{
boolean_T rtmStopReq = FALSE;
rtExtModePauseIfNeeded(raspberrypi_audioequalizer_M->extModeInfo, 1,
&rtmStopReq);
if (rtmStopReq) {
rtmSetStopRequested(raspberrypi_audioequalizer_M, TRUE);
}
if (rtmGetStopRequested(raspberrypi_audioequalizer_M) == TRUE) {
rtmSetErrorStatus(raspberrypi_audioequalizer_M, "Simulation finished");
break;
}
}
/* External mode */
{
boolean_T rtmStopReq = FALSE;
rtExtModeOneStep(raspberrypi_audioequalizer_M->extModeInfo, 1, &rtmStopReq);
if (rtmStopReq) {
rtmSetStopRequested(raspberrypi_audioequalizer_M, TRUE);
}
}
raspberrypi_audioequalizer_output();
/* Get model outputs here */
/* External mode */
rtExtModeUploadCheckTrigger(1);
{ /* Sample time: [0.1s, 0.0s] */
rtExtModeUpload(0, raspberrypi_audioequalizer_M->Timing.taskTime0);
}
raspberrypi_audioequalizer_update();
rtExtModeCheckEndTrigger();
} /* while */
sem_post(&stopSem);
}
开发者ID:epffpe,项目名称:Matlab,代码行数:50,代码来源:ert_main.c
示例16: main
int main(void)
{
volatile boolean_T runModel = 1;
float modelBaseRate = 0.1;
float systemClock = 100;
SystemCoreClockUpdate();
UNUSED(modelBaseRate);
UNUSED(systemClock);
rtmSetErrorStatus(Controller_M, 0);
Controller_initialize();
runModel =
rtmGetErrorStatus(Controller_M) == (NULL);
while (runModel) {
rt_OneStep();
runModel =
rtmGetErrorStatus(Controller_M) == (NULL);
}
/* Disable rt_OneStep() here */
/* Terminate model */
Controller_terminate();
return 0;
}
开发者ID:xy008areshsu,项目名称:Proactive-fault-tolerance-for-real-time-embedded-systems,代码行数:24,代码来源:ert_main.c
示例17: baseRateTask
void baseRateTask(void *arg)
{
baseRateInfo_t info = *((baseRateInfo_t *)arg);
MW_setTaskPeriod(info.period, info.signo);
while (rtmGetErrorStatus(testA_M) == (NULL) ) {
/* Wait for the next timer interrupt */
MW_sigWait(&info.sigMask);
testA_output();
/* Get model outputs here */
testA_update();
} /* while */
sem_post(&stopSem);
}
开发者ID:amitbed,项目名称:Matlab-CodeUpdated,代码行数:15,代码来源:ert_main.c
示例18: baseRateTask
void baseRateTask(void *arg)
{
baseRateInfo_t info = *((baseRateInfo_t *)arg);
MW_setTaskPeriod(info.period, info.signo);
while ((rtmGetErrorStatus(beagleboard_communication_M) == (NULL)) &&
!rtmGetStopRequested(beagleboard_communication_M) ) {
/* Wait for the next timer interrupt */
MW_sigWait(&info.sigMask);
beagleboard_communication_output();
/* Get model outputs here */
beagleboard_communication_update();
} /* while */
sem_post(&stopSem);
}
开发者ID:epffpe,项目名称:Matlab,代码行数:16,代码来源:ert_main.c
示例19: main
int main(int argc, char *argv[]){
ros::init(argc,argv,"position_control");
ros::NodeHandle nh("~");
Pos_Controller_U.consigne[0]=0;
Pos_Controller_U.consigne[1]=0;
Pos_Controller_U.consigne[2]=1;
Pos_Controller_U.yaw_cons=0;
Pos_Controller_U.yaw_is_relative=0;
/* Initialize model */
Pos_Controller_initialize();
ros::Subscriber consigneSubscriber = nh.subscribe("/position_target",1,target_callback);
tf::TransformListener tf_listener;
twistPublisher = nh.advertise<geometry_msgs::Twist>("/cmd_vel",1);
#ifdef DEBUG_POS_CONTROLLER_OUTPUTS
epsPublisher = nh.advertise<geometry_msgs::Pose>("eps",1);
vis_pub = nh.advertise<visualization_msgs::Marker>( "visualization_marker", 0 );
odomSpeedPublisher = nh.advertise<nav_msgs::Odometry>("/absolute_speed_command",1);
#endif
ros::ServiceServer enable_service = nh.advertiseService("enable",setEnabled);
ros::ServiceServer switch_rel_yaw = nh.advertiseService("enable_relative_yaw",setRelativeYaw);
ros::Rate rate(5.0);
while (ros::ok() && rtmGetErrorStatus(Pos_Controller_M) == (NULL)) {
if(_enabled){
tf::StampedTransform transform;
try{
tf_listener.lookupTransform("/nav", "/base_link",
ros::Time(0), transform);
}
catch (tf::TransformException ex){
ROS_ERROR("%s",ex.what());
}
transform_callback(transform);
}
ros::spinOnce();
step_PID();
rate.sleep();
}
/* Terminate model */
Pos_Controller_terminate();
return 0;
}
开发者ID:julesw,项目名称:ardrone_loclib,代码行数:47,代码来源:position_controller_tf.cpp
示例20: fprintf
/**
* This function is called when the START button is pushed from zenom.
*
* @return If you return 0, the control starts and the doloop() function is
* called periodically. If you return nonzero, the control will not start.
*/
int ZenomMatlab::start()
{
fprintf(stderr, "\n** starting the model **\n");
START(rtM);
if (rtmGetErrorStatus(rtM) != NULL) {
fprintf(stderr, "Failed in target initialization.\n");
TERMINATE(rtM);
return 0;
}
fprintf(stderr, "starting done!\n");
return 0;
}
开发者ID:Said-Nuri,项目名称:ZenomMatlab,代码行数:23,代码来源:main.cpp
注:本文中的rtmGetErrorStatus函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论