IGGE Power board
Dependencies: mbed ADS1015 USBDevice MCP4725
Diff: main.cpp
- Revision:
- 6:7691e36d2337
- Parent:
- 5:6b90ed7f3eb1
- Child:
- 7:cdd74b6e2595
diff -r 6b90ed7f3eb1 -r 7691e36d2337 main.cpp --- 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; }