Challenge

Project 2-Highway Assistant-Lane Changing Assistant

/*
 * File: pro2mbd.c
 *
 * Code generated for Simulink model 'pro2mbd'.
 *
 * Model version                  : 1.1
 * Simulink Coder version         : 9.5 (R2021a) 14-Nov-2020
 * C/C++ source code generated on : Fri Jul 14 20:58:34 2023
 *
 * Target selection: autosar.tlc
 * Embedded hardware selection: Intel->x86-64 (Windows64)
 * Code generation objectives: Unspecified
 * Validation result: Not run
 */

#include "pro2mbd.h"
#include "pro2mbd_private.h"

/* Named constants for Chart: '<S3>/Chart' */
#define pro2mbd_IN_Condition1          ((uint8)1U)
#define pro2mbd_IN_Condition2          ((uint8)2U)

/* Named constants for Chart: '<S4>/Chart' */
#define pro2mbd_IN_Condotion1          ((uint8)1U)
#define pro2mbd_IN_Condotion2          ((uint8)2U)

/* Block states (default storage) */
DW_pro2mbd_T pro2mbd_DW;

/* Model step function */
void pro2mbd_step_1(void)
{
  sint32 rtb_Highway_Display_Mode_1;
  sint32 rtb_Highway_Display_Mode_3;
  sint32 rtb_Lane_Display_Mode_1;
  sint32 rtb_Lane_Display_Mode_2;
  sint32 rtb_Lane_Display_Mode_3;
  sint32 rtb_Lane_Display_Mode_4;
  sint32 tmp_0;
  uint8 tmp;

  /* Chart: '<S3>/Chart' incorporates:
   *  Inport: '<Root>/Enable_Display'
   *  Inport: '<Root>/Highway_Input_Signal'
   *  Inport: '<Root>/Input_Switch'
   */
  if (pro2mbd_DW.is_active_c3_pro2mbd == 0U) {
    pro2mbd_DW.is_active_c3_pro2mbd = 1U;
    pro2mbd_DW.is_c3_pro2mbd = pro2mbd_IN_Condition1;
    rtb_Highway_Display_Mode_1 = 232;
    rtb_Highway_Display_Mode_3 = 41;
  } else if (pro2mbd_DW.is_c3_pro2mbd == pro2mbd_IN_Condition1) {
    rtb_Highway_Display_Mode_1 = 232;
    rtb_Highway_Display_Mode_3 = 41;
    if ((Rte_IRead_pro2mbd_step_1_Highway_Input_Signal_Highway_Input_Signal() ==
         1) && (Rte_IRead_pro2mbd_step_1_Enable_Display_Enable_Display() == 1) &&
        (Rte_IRead_pro2mbd_step_1_Input_Switch_Input_Switch() == 1)) {
      pro2mbd_DW.is_c3_pro2mbd = pro2mbd_IN_Condition2;
      rtb_Highway_Display_Mode_1 = 213;
      rtb_Highway_Display_Mode_3 = 9;
    }
  } else {
    /* case IN_Condition2: */
    rtb_Highway_Display_Mode_1 = 213;
    rtb_Highway_Display_Mode_3 = 9;
    if ((Rte_IRead_pro2mbd_step_1_Highway_Input_Signal_Highway_Input_Signal() ==
         1) && (Rte_IRead_pro2mbd_step_1_Enable_Display_Enable_Display() == 0) &&
        (Rte_IRead_pro2mbd_step_1_Input_Switch_Input_Switch() == 1)) {
      pro2mbd_DW.is_c3_pro2mbd = pro2mbd_IN_Condition1;
      rtb_Highway_Display_Mode_1 = 232;
      rtb_Highway_Display_Mode_3 = 41;
    }
  }

  /* End of Chart: '<S3>/Chart' */

  /* Chart: '<S4>/Chart' incorporates:
   *  Inport: '<Root>/Enable_Display'
   *  Inport: '<Root>/Input_Switch'
   *  Inport: '<Root>/Lane_Input_Signal'
   */
  if (pro2mbd_DW.is_active_c1_pro2mbd == 0U) {
    pro2mbd_DW.is_active_c1_pro2mbd = 1U;
    pro2mbd_DW.is_c1_pro2mbd = pro2mbd_IN_Condotion1;
    rtb_Lane_Display_Mode_1 = 132;
    rtb_Lane_Display_Mode_2 = 185;
    rtb_Lane_Display_Mode_3 = 54;
    rtb_Lane_Display_Mode_4 = 67;
  } else if (pro2mbd_DW.is_c1_pro2mbd == pro2mbd_IN_Condotion1) {
    rtb_Lane_Display_Mode_1 = 132;
    rtb_Lane_Display_Mode_2 = 185;
    rtb_Lane_Display_Mode_3 = 54;
    rtb_Lane_Display_Mode_4 = 67;
    if ((Rte_IRead_pro2mbd_step_1_Lane_Input_Signal_Lane_Input_Signal() == 6) &&
        (Rte_IRead_pro2mbd_step_1_Enable_Display_Enable_Display() == 1) &&
        (Rte_IRead_pro2mbd_step_1_Input_Switch_Input_Switch() == 1)) {
      pro2mbd_DW.is_c1_pro2mbd = pro2mbd_IN_Condotion2;
      rtb_Lane_Display_Mode_1 = 127;
      rtb_Lane_Display_Mode_2 = 248;
      rtb_Lane_Display_Mode_3 = 186;
      rtb_Lane_Display_Mode_4 = 84;
    }
  } else {
    /* case IN_Condotion2: */
    rtb_Lane_Display_Mode_1 = 127;
    rtb_Lane_Display_Mode_2 = 248;
    rtb_Lane_Display_Mode_3 = 186;
    rtb_Lane_Display_Mode_4 = 84;
    if ((Rte_IRead_pro2mbd_step_1_Lane_Input_Signal_Lane_Input_Signal() == 6) &&
        (Rte_IRead_pro2mbd_step_1_Enable_Display_Enable_Display() == 0) &&
        (Rte_IRead_pro2mbd_step_1_Input_Switch_Input_Switch() == 1)) {
      pro2mbd_DW.is_c1_pro2mbd = pro2mbd_IN_Condotion1;
      rtb_Lane_Display_Mode_1 = 132;
      rtb_Lane_Display_Mode_2 = 185;
      rtb_Lane_Display_Mode_3 = 54;
      rtb_Lane_Display_Mode_4 = 67;
    }
  }

  /* End of Chart: '<S4>/Chart' */

  /* Switch: '<S2>/Switch' incorporates:
   *  Inport: '<Root>/Highway_Input_Signal'
   *  Switch: '<S2>/Switch1'
   *  Switch: '<S2>/Switch2'
   *  Switch: '<S2>/Switch3'
   */
  tmp_0 = Rte_IRead_pro2mbd_step_1_Highway_Input_Signal_Highway_Input_Signal();
  if (tmp_0 > 0) {
    tmp = (uint8)rtb_Highway_Display_Mode_1;
  } else {
    tmp = (uint8)rtb_Lane_Display_Mode_1;
  }

  /* End of Switch: '<S2>/Switch' */

  /* Outport: '<Root>/Highway_Display_Mode_1' */
  Rte_IWrite_pro2mbd_step_1_Highway_Display_Mode_1_Highway_Display_Mode_1(tmp);

  /* Switch: '<S2>/Switch1' */
  if (tmp_0 > 0) {
    tmp = 183U;
  } else {
    tmp = (uint8)rtb_Lane_Display_Mode_2;
  }

  /* Outport: '<Root>/Highway_Display_Mode_2' */
  Rte_IWrite_pro2mbd_step_1_Highway_Display_Mode_2_Highway_Display_Mode_2(tmp);

  /* Switch: '<S2>/Switch2' */
  if (tmp_0 > 0) {
    tmp = (uint8)rtb_Highway_Display_Mode_3;
  } else {
    tmp = (uint8)rtb_Lane_Display_Mode_3;
  }

  /* Outport: '<Root>/Highway_Display_Mode_3' */
  Rte_IWrite_pro2mbd_step_1_Highway_Display_Mode_3_Highway_Display_Mode_3(tmp);

  /* Switch: '<S2>/Switch3' */
  if (tmp_0 > 0) {
    tmp = 94U;
  } else {
    tmp = (uint8)rtb_Lane_Display_Mode_4;
  }

  /* Outport: '<Root>/Highway_Display_Mode_4' */
  Rte_IWrite_pro2mbd_step_1_Highway_Display_Mode_4_Highway_Display_Mode_4(tmp);
}

/* Model initialize function */
void pro2mbd_Init(void)
{
  /* (no initialization code required) */
}

/*
 * File trailer for generated code.
 *
 * [EOF]
 */
Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.