envio teste
Dependencies: C12832 XBeeGetRssi mbed xbee_lib
main.cpp@0:f087a480051a, 2015-06-24 (annotated)
- Committer:
- mbastos
- Date:
- Wed Jun 24 19:06:55 2015 +0000
- Revision:
- 0:f087a480051a
teste comunica??o
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbastos | 0:f087a480051a | 1 | #include "mbed.h" |
mbastos | 0:f087a480051a | 2 | #include "C12832.h" |
mbastos | 0:f087a480051a | 3 | |
mbastos | 0:f087a480051a | 4 | Serial pc(USBTX, USBRX); // tx, rx |
mbastos | 0:f087a480051a | 5 | Serial xbee1(p9,p10); |
mbastos | 0:f087a480051a | 6 | DigitalOut rst1(p11); //Digital reset for the XBee, 200ns for reset |
mbastos | 0:f087a480051a | 7 | Serial serial (p9,p10); |
mbastos | 0:f087a480051a | 8 | C12832 lcd(p5, p7, p6, p8, p11); //C12832(PinName mosi, PinName sck, PinName reset, PinName a0, PinName ncs, const char* name = "LCD"); |
mbastos | 0:f087a480051a | 9 | |
mbastos | 0:f087a480051a | 10 | |
mbastos | 0:f087a480051a | 11 | //variaveis globais |
mbastos | 0:f087a480051a | 12 | int rssi=0; |
mbastos | 0:f087a480051a | 13 | int atdb=0; |
mbastos | 0:f087a480051a | 14 | int recepcao; |
mbastos | 0:f087a480051a | 15 | char mens[20]; |
mbastos | 0:f087a480051a | 16 | char mens1[20]; |
mbastos | 0:f087a480051a | 17 | unsigned char cont=0; |
mbastos | 0:f087a480051a | 18 | unsigned char cont1=0; |
mbastos | 0:f087a480051a | 19 | unsigned char tam=0; |
mbastos | 0:f087a480051a | 20 | unsigned char cks=0; |
mbastos | 0:f087a480051a | 21 | unsigned char estado=0; |
mbastos | 0:f087a480051a | 22 | unsigned char estado1=0; |
mbastos | 0:f087a480051a | 23 | //unsigned char rssi=0; |
mbastos | 0:f087a480051a | 24 | unsigned char temp=0; |
mbastos | 0:f087a480051a | 25 | unsigned char temp1=0; |
mbastos | 0:f087a480051a | 26 | |
mbastos | 0:f087a480051a | 27 | |
mbastos | 0:f087a480051a | 28 | |
mbastos | 0:f087a480051a | 29 | int main(void){ |
mbastos | 0:f087a480051a | 30 | |
mbastos | 0:f087a480051a | 31 | xbee1.baud(9600); |
mbastos | 0:f087a480051a | 32 | pc.baud(9600); |
mbastos | 0:f087a480051a | 33 | lcd.locate(0,3); |
mbastos | 0:f087a480051a | 34 | while(1){ |
mbastos | 0:f087a480051a | 35 | switch(estado){ |
mbastos | 0:f087a480051a | 36 | case 0: |
mbastos | 0:f087a480051a | 37 | INI: |
mbastos | 0:f087a480051a | 38 | while(!xbee1.readable()){ |
mbastos | 0:f087a480051a | 39 | lcd.locate(0,0); |
mbastos | 0:f087a480051a | 40 | lcd.cls(); |
mbastos | 0:f087a480051a | 41 | lcd.printf("Aguardando..."); |
mbastos | 0:f087a480051a | 42 | } |
mbastos | 0:f087a480051a | 43 | temp = xbee1.getc(); |
mbastos | 0:f087a480051a | 44 | if(temp==0x7E){ |
mbastos | 0:f087a480051a | 45 | cont=0; |
mbastos | 0:f087a480051a | 46 | } |
mbastos | 0:f087a480051a | 47 | mens[cont]=temp; |
mbastos | 0:f087a480051a | 48 | //lcd.locate(0,0); |
mbastos | 0:f087a480051a | 49 | //lcd.cls(); |
mbastos | 0:f087a480051a | 50 | //lcd.printf("Recebeu %x cont=%d",temp,cont);//debug - recebeu o primeiro caracter? |
mbastos | 0:f087a480051a | 51 | //wait(0.5); |
mbastos | 0:f087a480051a | 52 | temp = 0; |
mbastos | 0:f087a480051a | 53 | cont++; |
mbastos | 0:f087a480051a | 54 | if(cont==(mens[2]+4)){ //compara o tamanho enviado + 4 bytes (1 de inicio,2 de tamanho e checksum) para |
mbastos | 0:f087a480051a | 55 | estado = 1; // verificar se chegou ao final do frame, de maneira dinâmica |
mbastos | 0:f087a480051a | 56 | //lcd.cls(); |
mbastos | 0:f087a480051a | 57 | //lcd.locate(0,10); |
mbastos | 0:f087a480051a | 58 | //lcd.printf("Frame 1 - Completo");//debug - completou o frame? |
mbastos | 0:f087a480051a | 59 | //wait(0.5); |
mbastos | 0:f087a480051a | 60 | } |
mbastos | 0:f087a480051a | 61 | break; |
mbastos | 0:f087a480051a | 62 | case 1: //montou o primeiro pacote |
mbastos | 0:f087a480051a | 63 | //lcd.locate(0,20); |
mbastos | 0:f087a480051a | 64 | //lcd.printf("M[%x %x %x %x %x %x %x %x %x %x ]",mens[0],mens[1],mens[2],mens[3],mens[4],mens[5],mens[6],mens[7],mens[8],mens[9]);//debug - recebeu o primeiro caracter? |
mbastos | 0:f087a480051a | 65 | //wait(7);//debug |
mbastos | 0:f087a480051a | 66 | |
mbastos | 0:f087a480051a | 67 | //lcd.locate(0,0); |
mbastos | 0:f087a480051a | 68 | //lcd.cls();//debug |
mbastos | 0:f087a480051a | 69 | //lcd.printf("Verificando..."); |
mbastos | 0:f087a480051a | 70 | //wait(0.5); |
mbastos | 0:f087a480051a | 71 | REP: xbee1.printf("%c%c%c%c%c%c%c%c",0x7E,0X00,0X04,0X08,0X01,0X64,0X62,0X30); |
mbastos | 0:f087a480051a | 72 | //wait(2); |
mbastos | 0:f087a480051a | 73 | //lcd.locate(0,10); |
mbastos | 0:f087a480051a | 74 | //lcd.cls();//debug |
mbastos | 0:f087a480051a | 75 | //lcd.printf("passou."); |
mbastos | 0:f087a480051a | 76 | //wait(1); |
mbastos | 0:f087a480051a | 77 | while (atdb==0){ |
mbastos | 0:f087a480051a | 78 | switch(estado1){ |
mbastos | 0:f087a480051a | 79 | case 0: |
mbastos | 0:f087a480051a | 80 | while(!xbee1.readable()){ |
mbastos | 0:f087a480051a | 81 | lcd.locate(0,0); |
mbastos | 0:f087a480051a | 82 | lcd.cls(); |
mbastos | 0:f087a480051a | 83 | lcd.printf("Aguardando ATDB..."); |
mbastos | 0:f087a480051a | 84 | } |
mbastos | 0:f087a480051a | 85 | temp1 = xbee1.getc();//gets(temp); |
mbastos | 0:f087a480051a | 86 | if(temp1==0x7E){ |
mbastos | 0:f087a480051a | 87 | cont1=0; |
mbastos | 0:f087a480051a | 88 | } |
mbastos | 0:f087a480051a | 89 | mens1[cont1]=temp1; |
mbastos | 0:f087a480051a | 90 | //lcd.locate(0,0); |
mbastos | 0:f087a480051a | 91 | //lcd.cls(); |
mbastos | 0:f087a480051a | 92 | //lcd.printf("Recebeu %x ATDB=%d",temp1,cont1);//debug - recebeu o primeiro caracter? |
mbastos | 0:f087a480051a | 93 | //wait(1); |
mbastos | 0:f087a480051a | 94 | temp1 = 0; |
mbastos | 0:f087a480051a | 95 | cont1++; |
mbastos | 0:f087a480051a | 96 | if(cont1==(mens1[2]+4)){ |
mbastos | 0:f087a480051a | 97 | estado1 = 1; |
mbastos | 0:f087a480051a | 98 | //lcd.locate(0,10); |
mbastos | 0:f087a480051a | 99 | //lcd.cls(); |
mbastos | 0:f087a480051a | 100 | //lcd.printf("Frame 2 - Completo");//debug - completou o frame? |
mbastos | 0:f087a480051a | 101 | //wait(0.5); |
mbastos | 0:f087a480051a | 102 | } |
mbastos | 0:f087a480051a | 103 | break; |
mbastos | 0:f087a480051a | 104 | case 1: //ja montou o frame AT response |
mbastos | 0:f087a480051a | 105 | atdb=1; |
mbastos | 0:f087a480051a | 106 | switch(mens1[3]){ |
mbastos | 0:f087a480051a | 107 | case 0x88: |
mbastos | 0:f087a480051a | 108 | lcd.locate(0,10); |
mbastos | 0:f087a480051a | 109 | lcd.cls(); |
mbastos | 0:f087a480051a | 110 | lcd.printf("Frame ATDB:mens1[3]=%x",mens1[3]);//debug para confirmar frame ATDB |
mbastos | 0:f087a480051a | 111 | //wait(1); |
mbastos | 0:f087a480051a | 112 | rssi=mens1[8]; |
mbastos | 0:f087a480051a | 113 | lcd.locate(0,10); |
mbastos | 0:f087a480051a | 114 | lcd.cls(); |
mbastos | 0:f087a480051a | 115 | lcd.printf("RSSI=%x",mens1[8]);//debug para confirmar frame ATDB |
mbastos | 0:f087a480051a | 116 | wait(0.1); |
mbastos | 0:f087a480051a | 117 | estado=0; |
mbastos | 0:f087a480051a | 118 | cont=0; |
mbastos | 0:f087a480051a | 119 | atdb=0; |
mbastos | 0:f087a480051a | 120 | goto INI; |
mbastos | 0:f087a480051a | 121 | break; |
mbastos | 0:f087a480051a | 122 | default: |
mbastos | 0:f087a480051a | 123 | estado1=0; |
mbastos | 0:f087a480051a | 124 | cont1=0; |
mbastos | 0:f087a480051a | 125 | temp1=0; |
mbastos | 0:f087a480051a | 126 | lcd.locate(0,10); |
mbastos | 0:f087a480051a | 127 | lcd.cls(); |
mbastos | 0:f087a480051a | 128 | lcd.printf("ERRO: Nao eh ATDB:mens1[3]=%x",mens1[3]);//debug para confirmar frame ATDB |
mbastos | 0:f087a480051a | 129 | wait(1); |
mbastos | 0:f087a480051a | 130 | estado=0; |
mbastos | 0:f087a480051a | 131 | cont=0; |
mbastos | 0:f087a480051a | 132 | atdb=0; |
mbastos | 0:f087a480051a | 133 | goto INI; |
mbastos | 0:f087a480051a | 134 | }//fecha switch mensg[3]=0x88 |
mbastos | 0:f087a480051a | 135 | break; |
mbastos | 0:f087a480051a | 136 | }//fecha switch estado1 |
mbastos | 0:f087a480051a | 137 | }//fecha while atdb |
mbastos | 0:f087a480051a | 138 | break; |
mbastos | 0:f087a480051a | 139 | }//fecha switch estado |
mbastos | 0:f087a480051a | 140 | |
mbastos | 0:f087a480051a | 141 | |
mbastos | 0:f087a480051a | 142 | }//fecha while1 |
mbastos | 0:f087a480051a | 143 | }//fecha int main() |
mbastos | 0:f087a480051a | 144 | |
mbastos | 0:f087a480051a | 145 |