tim010 tim010
/
Projekat_13_Grupa5_Bezicni_Chat
Amer Ratkovic Amela Spica
main.cpp@0:f2f4f4cd4bd9, 2014-06-09 (annotated)
- Committer:
- tim010
- Date:
- Mon Jun 09 07:35:33 2014 +0000
- Revision:
- 0:f2f4f4cd4bd9
PROJEKAT_13_Grupa5_Tim010_Bezicni_Chat
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tim010 | 0:f2f4f4cd4bd9 | 1 | #include "mbed.h" |
tim010 | 0:f2f4f4cd4bd9 | 2 | #include "nRF24L01P.h" |
tim010 | 0:f2f4f4cd4bd9 | 3 | #include "string" |
tim010 | 0:f2f4f4cd4bd9 | 4 | #define TRANSFER_SIZE 2 |
tim010 | 0:f2f4f4cd4bd9 | 5 | |
tim010 | 0:f2f4f4cd4bd9 | 6 | Serial pc(USBTX, USBRX); // tx, rx |
tim010 | 0:f2f4f4cd4bd9 | 7 | |
tim010 | 0:f2f4f4cd4bd9 | 8 | nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTD0, PTD5, PTA13); // mosi, miso, sck, csn, ce, irq |
tim010 | 0:f2f4f4cd4bd9 | 9 | |
tim010 | 0:f2f4f4cd4bd9 | 10 | DigitalOut myled1(LED1); |
tim010 | 0:f2f4f4cd4bd9 | 11 | DigitalOut myled2(LED2); |
tim010 | 0:f2f4f4cd4bd9 | 12 | |
tim010 | 0:f2f4f4cd4bd9 | 13 | |
tim010 | 0:f2f4f4cd4bd9 | 14 | char nick [20]; |
tim010 | 0:f2f4f4cd4bd9 | 15 | int brojac=0; |
tim010 | 0:f2f4f4cd4bd9 | 16 | int i=0; |
tim010 | 0:f2f4f4cd4bd9 | 17 | int main() |
tim010 | 0:f2f4f4cd4bd9 | 18 | { |
tim010 | 0:f2f4f4cd4bd9 | 19 | |
tim010 | 0:f2f4f4cd4bd9 | 20 | int vel=0,j=0; |
tim010 | 0:f2f4f4cd4bd9 | 21 | int txDataCnt = 0; |
tim010 | 0:f2f4f4cd4bd9 | 22 | int rxDataCnt = 0; |
tim010 | 0:f2f4f4cd4bd9 | 23 | char txData[TRANSFER_SIZE], rxData[20]; |
tim010 | 0:f2f4f4cd4bd9 | 24 | string str=""; |
tim010 | 0:f2f4f4cd4bd9 | 25 | |
tim010 | 0:f2f4f4cd4bd9 | 26 | pc.printf( "Dobrodosli na Wi-Fi chat\n \n" ); |
tim010 | 0:f2f4f4cd4bd9 | 27 | pc.printf( "Unesite vas nick: " ); |
tim010 | 0:f2f4f4cd4bd9 | 28 | pc.scanf("%s",&nick); |
tim010 | 0:f2f4f4cd4bd9 | 29 | pc.printf("Vas nick je ...'%s'...\n", nick); |
tim010 | 0:f2f4f4cd4bd9 | 30 | for (j=0; j<20; j++) { |
tim010 | 0:f2f4f4cd4bd9 | 31 | if(nick[j]=='\0') { |
tim010 | 0:f2f4f4cd4bd9 | 32 | |
tim010 | 0:f2f4f4cd4bd9 | 33 | break; |
tim010 | 0:f2f4f4cd4bd9 | 34 | } |
tim010 | 0:f2f4f4cd4bd9 | 35 | brojac++; |
tim010 | 0:f2f4f4cd4bd9 | 36 | } |
tim010 | 0:f2f4f4cd4bd9 | 37 | nick[brojac++]=':'; |
tim010 | 0:f2f4f4cd4bd9 | 38 | nick[brojac++]=' '; |
tim010 | 0:f2f4f4cd4bd9 | 39 | |
tim010 | 0:f2f4f4cd4bd9 | 40 | strcat(nick,": "); |
tim010 | 0:f2f4f4cd4bd9 | 41 | pc.printf("Cekanje na drugog korisnik ...\n"); |
tim010 | 0:f2f4f4cd4bd9 | 42 | |
tim010 | 0:f2f4f4cd4bd9 | 43 | my_nrf24l01p.powerUp(); |
tim010 | 0:f2f4f4cd4bd9 | 44 | my_nrf24l01p.setTransferSize( TRANSFER_SIZE ); |
tim010 | 0:f2f4f4cd4bd9 | 45 | my_nrf24l01p.setReceiveMode(); |
tim010 | 0:f2f4f4cd4bd9 | 46 | my_nrf24l01p.enable(); |
tim010 | 0:f2f4f4cd4bd9 | 47 | |
tim010 | 0:f2f4f4cd4bd9 | 48 | pc.printf("\n"); |
tim010 | 0:f2f4f4cd4bd9 | 49 | pc.printf("%s",nick); |
tim010 | 0:f2f4f4cd4bd9 | 50 | |
tim010 | 0:f2f4f4cd4bd9 | 51 | |
tim010 | 0:f2f4f4cd4bd9 | 52 | while (1) { |
tim010 | 0:f2f4f4cd4bd9 | 53 | |
tim010 | 0:f2f4f4cd4bd9 | 54 | // If we've received anything over the host serial link... |
tim010 | 0:f2f4f4cd4bd9 | 55 | if ( pc.readable() ) { |
tim010 | 0:f2f4f4cd4bd9 | 56 | |
tim010 | 0:f2f4f4cd4bd9 | 57 | if(i==0) { |
tim010 | 0:f2f4f4cd4bd9 | 58 | for (j=0; j<brojac; j++) { |
tim010 | 0:f2f4f4cd4bd9 | 59 | txData[txDataCnt++] = nick[j]; |
tim010 | 0:f2f4f4cd4bd9 | 60 | |
tim010 | 0:f2f4f4cd4bd9 | 61 | // If the transmit buffer is full |
tim010 | 0:f2f4f4cd4bd9 | 62 | if ( txDataCnt >= sizeof( txData ) ) { |
tim010 | 0:f2f4f4cd4bd9 | 63 | |
tim010 | 0:f2f4f4cd4bd9 | 64 | my_nrf24l01p.write( NRF24L01P_PIPE_P0, txData, txDataCnt ); |
tim010 | 0:f2f4f4cd4bd9 | 65 | |
tim010 | 0:f2f4f4cd4bd9 | 66 | txDataCnt = 0; |
tim010 | 0:f2f4f4cd4bd9 | 67 | } |
tim010 | 0:f2f4f4cd4bd9 | 68 | } |
tim010 | 0:f2f4f4cd4bd9 | 69 | |
tim010 | 0:f2f4f4cd4bd9 | 70 | |
tim010 | 0:f2f4f4cd4bd9 | 71 | } |
tim010 | 0:f2f4f4cd4bd9 | 72 | |
tim010 | 0:f2f4f4cd4bd9 | 73 | |
tim010 | 0:f2f4f4cd4bd9 | 74 | txData[txDataCnt++] = pc.getc(); |
tim010 | 0:f2f4f4cd4bd9 | 75 | |
tim010 | 0:f2f4f4cd4bd9 | 76 | // If the transmit buffer is full |
tim010 | 0:f2f4f4cd4bd9 | 77 | if ( txDataCnt >= sizeof( txData ) ) { |
tim010 | 0:f2f4f4cd4bd9 | 78 | |
tim010 | 0:f2f4f4cd4bd9 | 79 | // Send the transmitbuffer via the nRF24L01+ |
tim010 | 0:f2f4f4cd4bd9 | 80 | my_nrf24l01p.write( NRF24L01P_PIPE_P0, txData, txDataCnt ); |
tim010 | 0:f2f4f4cd4bd9 | 81 | |
tim010 | 0:f2f4f4cd4bd9 | 82 | txDataCnt = 0; |
tim010 | 0:f2f4f4cd4bd9 | 83 | } |
tim010 | 0:f2f4f4cd4bd9 | 84 | i=1; |
tim010 | 0:f2f4f4cd4bd9 | 85 | // Toggle LED1 (to help debug Host -> nRF24L01+ communication) |
tim010 | 0:f2f4f4cd4bd9 | 86 | myled1 = !myled1; |
tim010 | 0:f2f4f4cd4bd9 | 87 | } |
tim010 | 0:f2f4f4cd4bd9 | 88 | |
tim010 | 0:f2f4f4cd4bd9 | 89 | // If we've received anything in the nRF24L01+... |
tim010 | 0:f2f4f4cd4bd9 | 90 | if ( my_nrf24l01p.readable() ) { |
tim010 | 0:f2f4f4cd4bd9 | 91 | i=0; |
tim010 | 0:f2f4f4cd4bd9 | 92 | // ...read the data into the receive buffer |
tim010 | 0:f2f4f4cd4bd9 | 93 | rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, rxData, sizeof( rxData ) ); |
tim010 | 0:f2f4f4cd4bd9 | 94 | |
tim010 | 0:f2f4f4cd4bd9 | 95 | str += rxData; |
tim010 | 0:f2f4f4cd4bd9 | 96 | vel += rxDataCnt; |
tim010 | 0:f2f4f4cd4bd9 | 97 | if(str[vel-1] == '.') { |
tim010 | 0:f2f4f4cd4bd9 | 98 | |
tim010 | 0:f2f4f4cd4bd9 | 99 | |
tim010 | 0:f2f4f4cd4bd9 | 100 | vel--; |
tim010 | 0:f2f4f4cd4bd9 | 101 | pc.printf("\n"); |
tim010 | 0:f2f4f4cd4bd9 | 102 | |
tim010 | 0:f2f4f4cd4bd9 | 103 | // Display the receive buffer contents via the host serial link |
tim010 | 0:f2f4f4cd4bd9 | 104 | for ( int i = 0; vel > 0; vel--, i++ ) { |
tim010 | 0:f2f4f4cd4bd9 | 105 | |
tim010 | 0:f2f4f4cd4bd9 | 106 | pc.putc( str[i] ); |
tim010 | 0:f2f4f4cd4bd9 | 107 | } |
tim010 | 0:f2f4f4cd4bd9 | 108 | pc.printf("\n"); |
tim010 | 0:f2f4f4cd4bd9 | 109 | vel = 0; |
tim010 | 0:f2f4f4cd4bd9 | 110 | str =""; |
tim010 | 0:f2f4f4cd4bd9 | 111 | |
tim010 | 0:f2f4f4cd4bd9 | 112 | rxDataCnt = 0; |
tim010 | 0:f2f4f4cd4bd9 | 113 | } |
tim010 | 0:f2f4f4cd4bd9 | 114 | |
tim010 | 0:f2f4f4cd4bd9 | 115 | // Toggle LED2 (to help debug nRF24L01+ -> Host communication) |
tim010 | 0:f2f4f4cd4bd9 | 116 | myled2 = !myled2; |
tim010 | 0:f2f4f4cd4bd9 | 117 | } |
tim010 | 0:f2f4f4cd4bd9 | 118 | } |
tim010 | 0:f2f4f4cd4bd9 | 119 | } |