Challenge

Project 2-Highway Assistant-Lane Changing Assistant

REQUIRMENT1:

REQUIRMENT 2:

REQUIRMENT 3:

/*
 * File: Lane_Change_Assistance.c
 *
 * Code generated for Simulink model 'Lane_Change_Assistance'.
 *
 * Model version                  : 1.9
 * Simulink Coder version         : 9.6 (R2021b) 14-May-2021
 * C/C++ source code generated on : Fri Jun 17 17:52:42 2022
 *
 * Target selection: autosar.tlc
 * Embedded hardware selection: Intel->x86-64 (Windows64)
 * Code generation objectives:
 *    1. Execution efficiency
 *    2. RAM efficiency
 * Validation result: Not run
 */

#include "Lane_Change_Assistance.h"

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

/* Block signals and states (default storage) */
DW rtDW;

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

  /* Chart: '<S3>/Chart' incorporates:
   *  Inport: '<Root>/Enable_Display'
   *  Inport: '<Root>/Highway_Input_Signal'
   *  Inport: '<Root>/Input_Switch'
   */
  if (rtDW.is_active_c3_Lane_Change_Assist == 0U) {
    rtDW.is_active_c3_Lane_Change_Assist = 1U;
    rtDW.is_c3_Lane_Change_Assistance = IN_Condition_1;
    rtb_Highway_Display_Mode_1 = 232U;
    rtb_Highway_Display_Mode_3 = 41U;
  } else if (rtDW.is_c3_Lane_Change_Assistance == IN_Condition_1) {
    rtb_Highway_Display_Mode_1 = 232U;
    rtb_Highway_Display_Mode_3 = 41U;
    if ((Rte_IRead_Lane_Change_Assistance_Step_Rp_Highway_Input_Signal_DE_Highway_Input_Signal
         () == 1) &&
        (Rte_IRead_Lane_Change_Assistance_Step_Rp_Enable_Display_DE_Enable_Display
         () == 1) &&
        (Rte_IRead_Lane_Change_Assistance_Step_Rp_Input_Switch_DE_Input_Switch()
         == 1)) {
      rtDW.is_c3_Lane_Change_Assistance = IN_Condition_2;
      rtb_Highway_Display_Mode_1 = 213U;
      rtb_Highway_Display_Mode_3 = 9U;
    }
  } else {
    /* case IN_Condition_2: */
    rtb_Highway_Display_Mode_1 = 213U;
    rtb_Highway_Display_Mode_3 = 9U;
    if ((Rte_IRead_Lane_Change_Assistance_Step_Rp_Highway_Input_Signal_DE_Highway_Input_Signal
         () == 1) &&
        (Rte_IRead_Lane_Change_Assistance_Step_Rp_Enable_Display_DE_Enable_Display
         () == 0) &&
        (Rte_IRead_Lane_Change_Assistance_Step_Rp_Input_Switch_DE_Input_Switch()
         == 1)) {
      rtDW.is_c3_Lane_Change_Assistance = IN_Condition_1;
      rtb_Highway_Display_Mode_1 = 232U;
      rtb_Highway_Display_Mode_3 = 41U;
    }
  }

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

  /* Chart: '<S4>/Chart' incorporates:
   *  Inport: '<Root>/Enable_Display'
   *  Inport: '<Root>/Input_Switch'
   *  Inport: '<Root>/Lane_Input_signal'
   */
  if (rtDW.is_active_c1_Lane_Change_Assist == 0U) {
    rtDW.is_active_c1_Lane_Change_Assist = 1U;
    rtDW.is_c1_Lane_Change_Assistance = IN_Condition_1;
    rtb_Lane_Display_Mode_1 = 132U;
    rtb_Lane_Display_Mode_2 = 185U;
    rtb_Lane_Display_Mode_3 = 54U;
    rtb_Lane_Display_Mode_4 = 67U;
  } else if (rtDW.is_c1_Lane_Change_Assistance == IN_Condition_1) {
    rtb_Lane_Display_Mode_1 = 132U;
    rtb_Lane_Display_Mode_2 = 185U;
    rtb_Lane_Display_Mode_3 = 54U;
    rtb_Lane_Display_Mode_4 = 67U;
    if ((Rte_IRead_Lane_Change_Assistance_Step_Rp_Lane_Input_signal_DE_Lane_Input_signal
         () == 6) &&
        (Rte_IRead_Lane_Change_Assistance_Step_Rp_Enable_Display_DE_Enable_Display
         () == 0) &&
        (Rte_IRead_Lane_Change_Assistance_Step_Rp_Input_Switch_DE_Input_Switch()
         == 1)) {
      rtDW.is_c1_Lane_Change_Assistance = IN_Condition_2;
      rtb_Lane_Display_Mode_1 = 127U;
      rtb_Lane_Display_Mode_2 = 248U;
      rtb_Lane_Display_Mode_3 = 186U;
      rtb_Lane_Display_Mode_4 = 84U;
    }
  } else {
    /* case IN_Condition_2: */
    rtb_Lane_Display_Mode_1 = 127U;
    rtb_Lane_Display_Mode_2 = 248U;
    rtb_Lane_Display_Mode_3 = 186U;
    rtb_Lane_Display_Mode_4 = 84U;
    if ((Rte_IRead_Lane_Change_Assistance_Step_Rp_Lane_Input_signal_DE_Lane_Input_signal
         () == 6) &&
        (Rte_IRead_Lane_Change_Assistance_Step_Rp_Enable_Display_DE_Enable_Display
         () == 1) &&
        (Rte_IRead_Lane_Change_Assistance_Step_Rp_Input_Switch_DE_Input_Switch()
         == 1)) {
      rtDW.is_c1_Lane_Change_Assistance = IN_Condition_1;
      rtb_Lane_Display_Mode_1 = 132U;
      rtb_Lane_Display_Mode_2 = 185U;
      rtb_Lane_Display_Mode_3 = 54U;
      rtb_Lane_Display_Mode_4 = 67U;
    }
  }

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

  /* Switch: '<S2>/Switch' incorporates:
   *  Inport: '<Root>/Highway_Input_Signal'
   *  Switch: '<S2>/Switch1'
   *  Switch: '<S2>/Switch4'
   */
  tmp =
    Rte_IRead_Lane_Change_Assistance_Step_Rp_Highway_Input_Signal_DE_Highway_Input_Signal
    ();
  if (tmp != 0) {
    /* Outport: '<Root>/Display_Mode_1' */
    Rte_IWrite_Lane_Change_Assistance_Step_Pp_Display_Mode_1_DE_Display_Mode_1
      (rtb_Highway_Display_Mode_1);
    rtb_Lane_Display_Mode_2 = 183U;
  } else {
    /* Outport: '<Root>/Display_Mode_1' */
    Rte_IWrite_Lane_Change_Assistance_Step_Pp_Display_Mode_1_DE_Display_Mode_1
      (rtb_Lane_Display_Mode_1);
  }

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

  /* Outport: '<Root>/Display_Mode_2' */
  Rte_IWrite_Lane_Change_Assistance_Step_Pp_Display_Mode_2_DE_Display_Mode_2
    (rtb_Lane_Display_Mode_2);

  /* Switch: '<S2>/Switch1' incorporates:
   *  Switch: '<S2>/Switch2'
   */
  if (tmp != 0) {
    /* Outport: '<Root>/Display_Mode_3' */
    Rte_IWrite_Lane_Change_Assistance_Step_Pp_Display_Mode_3_DE_Display_Mode_3
      (rtb_Highway_Display_Mode_3);
    rtb_Lane_Display_Mode_4 = 94U;
  } else {
    /* Outport: '<Root>/Display_Mode_3' */
    Rte_IWrite_Lane_Change_Assistance_Step_Pp_Display_Mode_3_DE_Display_Mode_3
      (rtb_Lane_Display_Mode_3);
  }

  /* Outport: '<Root>/Display_Mode_4' */
  Rte_IWrite_Lane_Change_Assistance_Step_Pp_Display_Mode_4_DE_Display_Mode_4
    (rtb_Lane_Display_Mode_4);
}

/* Model initialize function */
void Lane_Change_Assistance_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.

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.