IGGE Power board

Dependencies:   mbed ADS1015 USBDevice MCP4725

Revision:
6:7691e36d2337
Parent:
5:6b90ed7f3eb1
Child:
7:cdd74b6e2595
--- a/main.cpp	Mon Apr 07 06:42:13 2014 +0000
+++ b/main.cpp	Thu May 01 00:11:28 2014 +0000
@@ -8,6 +8,8 @@
 #include <string>
 #include <stdio.h>
 
+#define SERIALOUT
+
 //#define SERIAL_BAUD_RATE    9600
 
 //library function setup
@@ -19,13 +21,16 @@
 
 //can stuff
 Ticker ticker;
-CAN can1(p9, p10);
+//CAN can1(p9, p10);
 CAN can2(p30, p29);
 char counter[8] = {1,1,1,1,1,1,1,1};
 int test=0x0;
 char counter2=0;
 
 
+bool fromUsr[5] = {false,false,false,false,false}; //cpupwr, cpu rst, sensor, net, usrint
+
+
 
 //leds
 DigitalOut led0(LED1);
@@ -49,9 +54,9 @@
 
 //Relays
 DigitalOut relSens(p21);              //  PROTO
-DigitalOut relUsr(p22);
+DigitalOut relUsr(p24);
 DigitalOut relNet(p23);
-DigitalOut relCpuRst(p24);
+DigitalOut relCpuRst(p22);
 DigitalOut relCpuPower(p25);
 
 
@@ -78,11 +83,12 @@
     counter[5]=int3 & 0xFF;
     counter[6]=int4 >> 8;
     counter[7]=int4 & 0xFF;
-
-    if(can1.write(CANMessage(ID, counter, 8))) {
+    led2=1;
+    if(can2.write(CANMessage(ID, counter, 8))) {
 
-        printf("Message sent: %x%x\r\n", counter[1],counter[0]);
-        printf("Should be: %d, %d, %d, %d\r\n", int1,int2,int3,int4);
+        //  printf("Message sent: %x%x\r\n", counter[1],counter[0]);
+        //  printf("Should be: %d, %d, %d, %d\r\n", int1,int2,int3,int4);
+        led2=0;
     }
     led1=0;
 }
@@ -92,24 +98,28 @@
 
 
 
-void Can_main(bool send,long int val1,long int val2,long int val3,long int val4, int the_ID)
+void Can_main(long int val1,long int val2,long int val3,long int val4, int the_ID)
 {
 
     std::map <int,string> CanIDMap;
 
-    //CanIDMap[0]="Motor Controller String";
-    CanIDMap[1]="Motor Controller Ints";
-    //CanIDMap[2]="Power Controller Voltage_Battery";
-    CanIDMap[3]="Power Controller Voltage_5V";
-    //CanIDMap[4]="Power Controller Voltage_12V";
-    CanIDMap[5]="Power Controller Voltage_Motor";
-    CanIDMap[6]="Power Controller Current_Battery";
-    CanIDMap[7]="Power Controller Current_5V";
-    CanIDMap[8]="Power Controller Current_12V";
-    CanIDMap[9]="Power Controller Current_Motor";
-    CanIDMap[10]="LCD Controller String";
-    CanIDMap[11]="LCD Controller Ints";
-    CanIDMap[12]="Zac is the Best";
+    CanIDMap[0]=" ";
+    CanIDMap[1]="Message id 1: Batt Cur, Batt Volt, Twelve Cur, Twelve Volt";
+    CanIDMap[2]="Message id 2: Five Cur, Five Volt, Mot Cur, Mot Volt,";
+    CanIDMap[3]="Message id 3: Cpu Cur,  Perifferal Cur, null,  null....";
+    CanIDMap[4]="Message id 4: Network switch, usrint switch, sensor on switch, null";
+    CanIDMap[5]="Message id 5: cpupwr switch, cpu rst switch,null,null.";
+    CanIDMap[6]=" ";
+    CanIDMap[7]=" ";
+    CanIDMap[8]=" ";
+    CanIDMap[9]=" ";
+    CanIDMap[10]=" ";
+    CanIDMap[11]=" ";
+    CanIDMap[12]="Zac is the Worst";
+    CanIDMap[13]="Auto";
+    CanIDMap[14]="Manual";
+
+
 
 
 
@@ -120,13 +130,11 @@
     int fixer3=0;
     int fixer4=0;
 
-    if (send==true) {
-        sending_values(val1,val2,val3,val4,the_ID);
-    }
+
     if(can2.read(msg)) {
         bool tester= CanIDMap.find(msg.id) != CanIDMap.end();
         if (tester) {
-            printf("Message received: %x %x \r\n", msg.data[0], msg.data[1]);
+            //printf("Message received: %x %x \r\n", msg.data[0], msg.data[1]);
 
             //printf("ID of message: %s \r\n", CanIDMap[msg.id]);
 
@@ -138,15 +146,32 @@
             fixer2=((msg.data[2]<<8) | (msg.data[3]));
             fixer3=((msg.data[4]<<8) | (msg.data[5]));
             fixer4=((msg.data[6]<<8) | (msg.data[7]));
+            if(msg.id==4) { // "Message id 4: Network switch, usrint switch, sensor on switch, null";
+fromUsr[3]=fixer1;    //fromUsr=cpupwr, cpu rst, sensor, net, usrint
+fromUsr[4]= fixer2;
+fromUsr[2]=fixer3;
+            }
+
+
+            else if(msg.id==5) { // "Message id 5: cpupwr switch, cpu rst switch,";
+fromUsr[0]=fixer1;    //fromUsr=cpupwr, cpu rst, sensor, net, usrint
+fromUsr[1]= fixer2;
+
+
+            }
+
+            else{
+                led3=!led3;
+                }
             led2 = !led2;
 
-            printf("Resulting Answer back is: %d, %d, %d, %d\r\n\r\n\r\n",fixer1,fixer2,fixer3,fixer4 );
+            // printf("Resulting Answer back is: %d, %d, %d, %d\r\n\r\n\r\n",fixer1,fixer2,fixer3,fixer4 );
 
         }
 
         else {
 
-            printf("Can Message, not related to this controller\r\n\r\n");
+            // printf("Can Message, not related to this controller\r\n\r\n");
 
         }
 
@@ -164,7 +189,7 @@
 
 void sendArray (void)
 {
-    
+#ifdef SERIALOUT
     printf("___________________________\r\n");
     printf("Sending messages....\r\n");
     printf("Message id 1: Batt Cur = %d, Batt Volt = %d, Twelve Cur = %d, Twelve Volt = %d....",powerArr[0],powerArr[1],powerArr[2],powerArr[3]);
@@ -173,31 +198,54 @@
     printf("Message id 2: Five Cur = %d, Five Volt = %d, Mot Cur = %d, Mot Volt = %d....",powerArr[4],powerArr[5],powerArr[6],powerArr[7]);
     sending_values(powerArr[4],powerArr[5],powerArr[6],powerArr[7],2);
     printf("....sent\r\n");
-    printf("Message id 3: Cpu Cur = %d,  Periferal Cur = %d, null,  null....",powerArr[8],powerArr[9]);
+    printf("Message id 3: Cpu Cur = %d,  Perifferal Cur = %d, null,  null....",powerArr[8],powerArr[9]);
     sending_values(powerArr[8],powerArr[9],0,0,3);
     printf("....sent\r\n");
     printf("CANBUS TRANMISSION COMPLETE\r\n");
     printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n");
-    relNet=!relNet;
+    //relNet=!relNet;
+    relSens= !relSens;
+
+
+    //relCpuPower=!relCpuPower;
+    //relCpuRst =!relCpuRst;
+    // relUsr=!relUsr;
     float neW =(powerArr[1]*.003);
     printf("actual vbat= %2.4f volt\r\n", neW);
+#endif
+#ifndef SERIALOUT
+    sending_values(powerArr[0],powerArr[1],powerArr[2],powerArr[3],1);
+    sending_values(powerArr[4],powerArr[5],powerArr[6],powerArr[7],2);
+    sending_values(powerArr[8],powerArr[9],0,0,3);
+    relNet=!relNet;
+    relSens= !relSens;
+
+    relCpuPower=!relCpuPower;
+    relCpuRst =!relCpuRst;
+    relUsr=!relUsr;
+#endif
+
 }
 
 
 
 void setup(void)
 {
-    graph.attach(&sendArray, (1.5)); //update array every 10 seconds
-    //  cantbus.frequency(500000);
-    // CANMessage can_MsgRx;
+    graph.attach(&sendArray, (1)); //update array every 10 seconds
+
 
     //initialize relays
     relSens= 0;
+
     relNet =0;
     relCpuPower=0;
     relCpuRst =0;
     relUsr=0;
 
+
+
+
+
 }
 
 
@@ -208,8 +256,7 @@
 
 
     while (1) {
-
-
+        Can_main(0,0,0,0,0);
 
 
 
@@ -230,6 +277,15 @@
 
 //powerArr[] = {ibat,vbat,itwelve, vtwelve, ifive, vfive, imot, vmot, icpu, iperi};
 
+        relCpuPower=fromUsr[0];
+        relCpuRst =fromUsr[1];
+        relSens= fromUsr[2];
+        relNet =fromUsr[3];
+        relUsr=fromUsr[4];
+
+
+//cpupwr, cpu rst, sensor, net, usrint
+
         led0=!led0;
 
     }