• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ rtmGetErrorStatus函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ sDecodeRXMessage函数代码示例发布时间:2022-05-31
下一篇:
C++ rtllib_priv函数代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap