Program that execute AEB system

Dependencies:   AEB Ultrasonic Controller_Master mbed

Dependents:   AEB

Revision:
4:0df8a61cbee9
Parent:
3:06075cbd49bd
--- a/main.cpp	Wed Jul 06 10:57:35 2016 +0000
+++ b/main.cpp	Mon Jul 11 10:16:14 2016 +0000
@@ -11,63 +11,33 @@
     &Controller_Slave_M_;                /* Real-time model */
 static B_Controller_Slave_T Controller_Slave_B;/* Observable signals */
 static DW_Controller_Slave_T Controller_Slave_DW;/* Observable states */
-
-/* '<Root>/V' */
 static real_T Controller_Slave_U_V;
-
-/* '<Root>/D_S' */
 static real_T Controller_Slave_U_D_S;
-
-/* '<Root>/MASTER' */
 static uint8_T Controller_Slave_U_Master;
-
-/* '<Root>/QA_EN' */
 static boolean_T Controller_Slave_U_QA_EN;
-
-/* '<Root>/BRAKE' */
 static uint8_T Controller_Slave_Y_BRAKE;
-
-/* '<Root>/ACC' */
 static uint8_T Controller_Slave_Y_ACC;
-
-/* '<Root>/LED_RED' */
 static uint8_T Controller_Slave_Y_LED_RED;
-
-/* '<Root>/LED_GREEN' */
 static uint8_T Controller_Slave_Y_LED_GREEN;
-
-/* '<Root>/LED_BLUE' */
 static uint8_T Controller_Slave_Y_LED_BLUE;
-
-/* '<Root>/SLAVE' */
 static uint8_T Controller_Slave_Y_SLAVE;
-
-/*
- * Associating rt_OneStep with a real-time clock or interrupt service routine
- * is what makes the generated code "real-time".  The function rt_OneStep is
- * always associated with the base rate of the model.  Subrates are managed
- * by the base rate from inside the generated code.  Enabling/disabling
- * interrupts and floating point context switches are target specific.  This
- * example code indicates where these should take place relative to executing
- * the generated code step function.  Overrun behavior should be tailored to
- * your application needs.  This example simply sets an error status in the
- * real-time model and returns from rt_OneStep.
- */
 void rt_OneStep(RT_MODEL_Controller_Slave_T *const Controller_Slave_M);
 void step();
 
 
-Ultrasonic sonic(D2,D4);  // Just call this funtion to initialize the ultrasonic sensor
+Ultrasonic sonic(D6,D7);  // Just call this funtion to initialize the ultrasonic sensor
 // D2 trigger D4 echo
-
 DigitalOut led_R(LED_RED);
 DigitalOut led_G(LED_GREEN);
 DigitalOut led_B(LED_BLUE);
-DigitalOut slave_out(D8);
-DigitalIn  master(D6);
+DigitalIn  master(D5);
+DigitalOut acc(D2);
+DigitalOut brake(D3);
+DigitalIn  qa(D4);
 float V = 29;   // Set the vehicle speed here
 Ticker t;
 Serial  pc(USBTX, USBRX); // tx, rx
+Serial  myrio(D1,D0 ); // tx, rx
 
 int main()
 {
@@ -88,48 +58,48 @@
                                 &Controller_Slave_Y_LED_GREEN, &Controller_Slave_Y_LED_BLUE,
                                 &Controller_Slave_Y_SLAVE);
 
-    /* Attach rt_OneStep to a timer or interrupt service routine with
-     * period 0.1 seconds (the model's base sample time) here.  The
-     * call syntax for rt_OneStep is
-     *
-     *  rt_OneStep(Controller_Master_M);
-     */
+
     t.attach(&step,0.1);
     led_B.write(1);
     led_G.write(1);
     led_R.write(1);
     master.mode(PullDown);
-    slave_out.write(1);
+   // slave_out.write(1);
     while (true) {
         wait(0.2);
-        //led_R= !led_R;
-
     }
-
-    /* Disable rt_OneStep() here */
-
-    /* Terminate model */
     Controller_Slave_terminate(Controller_Slave_M);
 }
 
 void step()
 {
+    int var = 0;
+    char str[10];
+    if(myrio.readable()) {
+        myrio.scanf("%s",str);
+        var = atoi(str);
+        pc.printf("%d \n",var);
+    }
+    V = var;
     Controller_Slave_U_V = V;
     Controller_Slave_U_D_S = sonic.read_cm();
     Controller_Slave_U_Master = master.read();
-    Controller_Slave_U_QA_EN = true;
+    Controller_Slave_U_QA_EN = qa;
     rt_OneStep(Controller_Slave_M);
-    slave_out.write(Controller_Slave_Y_SLAVE);
-    pc.printf("blue: %d \n", Controller_Slave_Y_LED_BLUE);    // Call read_cm() to get the distance in cm
-    pc.printf("red: %d \n", Controller_Slave_Y_LED_RED);
-    pc.printf("slave out: %d \n", Controller_Slave_Y_SLAVE);
-    pc.printf("master in: %d \n", Controller_Slave_U_Master);
-    pc.printf("brake: %d \n", Controller_Slave_Y_BRAKE);
-    pc.printf("green: %d \n", Controller_Slave_Y_LED_GREEN);
-    pc.printf("acc: %d \n", Controller_Slave_Y_ACC);
+  //  slave_out.write(Controller_Slave_Y_SLAVE);
+    acc = Controller_Slave_Y_ACC;
+    brake = Controller_Slave_Y_BRAKE;
     led_B = !Controller_Slave_Y_LED_BLUE;         // negate because 1 -> led off
     led_R = !Controller_Slave_Y_LED_RED;
     led_G = !Controller_Slave_Y_LED_GREEN;
+//   pc.printf("blue: %d \n", Controller_Slave_Y_LED_BLUE);    // Call read_cm() to get the distance in cm
+//   pc.printf("red: %d \n", Controller_Slave_Y_LED_RED);
+//   pc.printf("slave out: %d \n", Controller_Slave_Y_SLAVE);
+//   pc.printf("master in: %d \n", Controller_Slave_U_Master);
+//   pc.printf("brake: %d \n", Controller_Slave_Y_BRAKE);
+//    pc.printf("green: %d \n", Controller_Slave_Y_LED_GREEN);
+//   pc.printf("acc: %d \n", Controller_Slave_Y_ACC);
+
 }
 
 void rt_OneStep(RT_MODEL_Controller_Slave_T *const Controller_Slave_M)