Danius Kalvaitis
/
danBed_communicate
Communicate with danBed via UART
main.cpp@0:fc1ff02f51e1, 2015-02-12 (annotated)
- Committer:
- DaniusKalv
- Date:
- Thu Feb 12 12:34:29 2015 +0000
- Revision:
- 0:fc1ff02f51e1
- Child:
- 1:1d18a2a3e9a0
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DaniusKalv | 0:fc1ff02f51e1 | 1 | #include "mbed.h" |
DaniusKalv | 0:fc1ff02f51e1 | 2 | #include <string> |
DaniusKalv | 0:fc1ff02f51e1 | 3 | |
DaniusKalv | 0:fc1ff02f51e1 | 4 | PwmOut RED(LED1); |
DaniusKalv | 0:fc1ff02f51e1 | 5 | PwmOut BLUE(LED2); |
DaniusKalv | 0:fc1ff02f51e1 | 6 | PwmOut GREEN(LED3); |
DaniusKalv | 0:fc1ff02f51e1 | 7 | DigitalOut RGB(LED4); |
DaniusKalv | 0:fc1ff02f51e1 | 8 | |
DaniusKalv | 0:fc1ff02f51e1 | 9 | //Serial pc(p28, p27); |
DaniusKalv | 0:fc1ff02f51e1 | 10 | Serial pc(USBTX, USBRX); |
DaniusKalv | 0:fc1ff02f51e1 | 11 | |
DaniusKalv | 0:fc1ff02f51e1 | 12 | void receive(); |
DaniusKalv | 0:fc1ff02f51e1 | 13 | char temp[100]; |
DaniusKalv | 0:fc1ff02f51e1 | 14 | |
DaniusKalv | 0:fc1ff02f51e1 | 15 | int main() { |
DaniusKalv | 0:fc1ff02f51e1 | 16 | |
DaniusKalv | 0:fc1ff02f51e1 | 17 | RED = 1; |
DaniusKalv | 0:fc1ff02f51e1 | 18 | GREEN = 1; |
DaniusKalv | 0:fc1ff02f51e1 | 19 | BLUE = 1; |
DaniusKalv | 0:fc1ff02f51e1 | 20 | RGB = 0; |
DaniusKalv | 0:fc1ff02f51e1 | 21 | |
DaniusKalv | 0:fc1ff02f51e1 | 22 | pc.baud(115200); |
DaniusKalv | 0:fc1ff02f51e1 | 23 | |
DaniusKalv | 0:fc1ff02f51e1 | 24 | pc.printf("\r\nWelcome to danBed communication v1.0!"); |
DaniusKalv | 0:fc1ff02f51e1 | 25 | pc.printf("\r\nWrite 'Labas' to continue...\r\n"); |
DaniusKalv | 0:fc1ff02f51e1 | 26 | |
DaniusKalv | 0:fc1ff02f51e1 | 27 | GET: |
DaniusKalv | 0:fc1ff02f51e1 | 28 | receive(); |
DaniusKalv | 0:fc1ff02f51e1 | 29 | string labas = "Labas"; |
DaniusKalv | 0:fc1ff02f51e1 | 30 | |
DaniusKalv | 0:fc1ff02f51e1 | 31 | if (temp == labas) pc.printf("\r\nLabas!!!\r\n"); |
DaniusKalv | 0:fc1ff02f51e1 | 32 | else{ |
DaniusKalv | 0:fc1ff02f51e1 | 33 | pc.printf("\r\nTry again! Type 'Labas'...\r\n"); |
DaniusKalv | 0:fc1ff02f51e1 | 34 | goto GET; |
DaniusKalv | 0:fc1ff02f51e1 | 35 | } |
DaniusKalv | 0:fc1ff02f51e1 | 36 | |
DaniusKalv | 0:fc1ff02f51e1 | 37 | delete &labas; |
DaniusKalv | 0:fc1ff02f51e1 | 38 | |
DaniusKalv | 0:fc1ff02f51e1 | 39 | while(1) { |
DaniusKalv | 0:fc1ff02f51e1 | 40 | |
DaniusKalv | 0:fc1ff02f51e1 | 41 | receive(); |
DaniusKalv | 0:fc1ff02f51e1 | 42 | char buffer[20]; |
DaniusKalv | 0:fc1ff02f51e1 | 43 | float value; |
DaniusKalv | 0:fc1ff02f51e1 | 44 | |
DaniusKalv | 0:fc1ff02f51e1 | 45 | //sscanf(temp,"%s %f", buffer, &value); |
DaniusKalv | 0:fc1ff02f51e1 | 46 | for(int j = 0; j < 10; j++) pc.printf("\r\n%i", buffer[j]); |
DaniusKalv | 0:fc1ff02f51e1 | 47 | |
DaniusKalv | 0:fc1ff02f51e1 | 48 | if(buffer == "RGB"){ |
DaniusKalv | 0:fc1ff02f51e1 | 49 | RGB = value; |
DaniusKalv | 0:fc1ff02f51e1 | 50 | if(value == 1) pc.printf("\r\nRGB turned ON\r\n"); |
DaniusKalv | 0:fc1ff02f51e1 | 51 | else pc.printf("\r\nRGB turned OFF\r\n"); |
DaniusKalv | 0:fc1ff02f51e1 | 52 | } |
DaniusKalv | 0:fc1ff02f51e1 | 53 | else if(buffer == "RED"){ |
DaniusKalv | 0:fc1ff02f51e1 | 54 | RED = value; |
DaniusKalv | 0:fc1ff02f51e1 | 55 | pc.printf("\r\nRED value %0.2f\r\n", value); |
DaniusKalv | 0:fc1ff02f51e1 | 56 | } |
DaniusKalv | 0:fc1ff02f51e1 | 57 | else if(buffer == "GREEN"){ |
DaniusKalv | 0:fc1ff02f51e1 | 58 | GREEN = value; |
DaniusKalv | 0:fc1ff02f51e1 | 59 | pc.printf("\r\nGREEN value %0.2f\r\n", value); |
DaniusKalv | 0:fc1ff02f51e1 | 60 | } |
DaniusKalv | 0:fc1ff02f51e1 | 61 | else if(buffer == "BLUE"){ |
DaniusKalv | 0:fc1ff02f51e1 | 62 | BLUE = value; |
DaniusKalv | 0:fc1ff02f51e1 | 63 | pc.printf("\r\nBLUE value %0.2f\r\n", value); |
DaniusKalv | 0:fc1ff02f51e1 | 64 | } |
DaniusKalv | 0:fc1ff02f51e1 | 65 | else pc.printf("\r\nCommand not recognised!\r\n"); |
DaniusKalv | 0:fc1ff02f51e1 | 66 | //else if(receiver == "RED"){ |
DaniusKalv | 0:fc1ff02f51e1 | 67 | //pc.gets( |
DaniusKalv | 0:fc1ff02f51e1 | 68 | } |
DaniusKalv | 0:fc1ff02f51e1 | 69 | } |
DaniusKalv | 0:fc1ff02f51e1 | 70 | |
DaniusKalv | 0:fc1ff02f51e1 | 71 | void receive(){ |
DaniusKalv | 0:fc1ff02f51e1 | 72 | memset(temp, 255, sizeof(temp)); |
DaniusKalv | 0:fc1ff02f51e1 | 73 | char c; |
DaniusKalv | 0:fc1ff02f51e1 | 74 | |
DaniusKalv | 0:fc1ff02f51e1 | 75 | int i = 0; |
DaniusKalv | 0:fc1ff02f51e1 | 76 | |
DaniusKalv | 0:fc1ff02f51e1 | 77 | while(true){ |
DaniusKalv | 0:fc1ff02f51e1 | 78 | if(pc.readable()){ |
DaniusKalv | 0:fc1ff02f51e1 | 79 | c = pc.getc(); |
DaniusKalv | 0:fc1ff02f51e1 | 80 | if (c == 13){ |
DaniusKalv | 0:fc1ff02f51e1 | 81 | temp[i] = 0; |
DaniusKalv | 0:fc1ff02f51e1 | 82 | break; |
DaniusKalv | 0:fc1ff02f51e1 | 83 | } |
DaniusKalv | 0:fc1ff02f51e1 | 84 | else temp[i] = c; |
DaniusKalv | 0:fc1ff02f51e1 | 85 | pc.putc(c); |
DaniusKalv | 0:fc1ff02f51e1 | 86 | i++; |
DaniusKalv | 0:fc1ff02f51e1 | 87 | } |
DaniusKalv | 0:fc1ff02f51e1 | 88 | } |
DaniusKalv | 0:fc1ff02f51e1 | 89 | } |