Kuldip Maharjan
/
string_serial
Capturing string from serial port
main.cpp@0:d5aa0b91d111, 2014-01-08 (annotated)
- Committer:
- kuldipmaharjan
- Date:
- Wed Jan 08 00:26:07 2014 +0000
- Revision:
- 0:d5aa0b91d111
capturing sting from serial ports
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kuldipmaharjan | 0:d5aa0b91d111 | 1 | //Author: Kuldip Maharjan |
kuldipmaharjan | 0:d5aa0b91d111 | 2 | //Email : kuldipmaharjan@gmail.com |
kuldipmaharjan | 0:d5aa0b91d111 | 3 | //Anyone can use this code if it helps in their projects or |
kuldipmaharjan | 0:d5aa0b91d111 | 4 | //for learning programing in mbed besides for commercial purposes |
kuldipmaharjan | 0:d5aa0b91d111 | 5 | |
kuldipmaharjan | 0:d5aa0b91d111 | 6 | //capturing string from serial ports |
kuldipmaharjan | 0:d5aa0b91d111 | 7 | |
kuldipmaharjan | 0:d5aa0b91d111 | 8 | #include "mbed.h" |
kuldipmaharjan | 0:d5aa0b91d111 | 9 | #include "stdio.h" |
kuldipmaharjan | 0:d5aa0b91d111 | 10 | #include "string.h" |
kuldipmaharjan | 0:d5aa0b91d111 | 11 | |
kuldipmaharjan | 0:d5aa0b91d111 | 12 | char* string_capture (char* result_string); |
kuldipmaharjan | 0:d5aa0b91d111 | 13 | |
kuldipmaharjan | 0:d5aa0b91d111 | 14 | Serial pc(USBTX, USBRX); // tx, rx |
kuldipmaharjan | 0:d5aa0b91d111 | 15 | Serial s1(p9,p10); // tx, rx |
kuldipmaharjan | 0:d5aa0b91d111 | 16 | Serial s2(p28,p27); // tx, rx |
kuldipmaharjan | 0:d5aa0b91d111 | 17 | |
kuldipmaharjan | 0:d5aa0b91d111 | 18 | int main() |
kuldipmaharjan | 0:d5aa0b91d111 | 19 | { |
kuldipmaharjan | 0:d5aa0b91d111 | 20 | char str[1024]= ""; |
kuldipmaharjan | 0:d5aa0b91d111 | 21 | pc.baud(9600); |
kuldipmaharjan | 0:d5aa0b91d111 | 22 | s1.baud(9600); |
kuldipmaharjan | 0:d5aa0b91d111 | 23 | s2.baud(9600); |
kuldipmaharjan | 0:d5aa0b91d111 | 24 | while(1) { |
kuldipmaharjan | 0:d5aa0b91d111 | 25 | pc.printf("putting $ to indicate beginning of string \n"); |
kuldipmaharjan | 0:d5aa0b91d111 | 26 | s1.putc('$'); |
kuldipmaharjan | 0:d5aa0b91d111 | 27 | if (s2.getc() == '$') { |
kuldipmaharjan | 0:d5aa0b91d111 | 28 | pc.printf("beginning capturing string \n"); |
kuldipmaharjan | 0:d5aa0b91d111 | 29 | //s1.putc('3'); |
kuldipmaharjan | 0:d5aa0b91d111 | 30 | pc.printf("\n the returned string is %s",string_capture(str)); |
kuldipmaharjan | 0:d5aa0b91d111 | 31 | } |
kuldipmaharjan | 0:d5aa0b91d111 | 32 | wait(2); |
kuldipmaharjan | 0:d5aa0b91d111 | 33 | } |
kuldipmaharjan | 0:d5aa0b91d111 | 34 | } |
kuldipmaharjan | 0:d5aa0b91d111 | 35 | |
kuldipmaharjan | 0:d5aa0b91d111 | 36 | char* string_capture (char* result_string) |
kuldipmaharjan | 0:d5aa0b91d111 | 37 | { |
kuldipmaharjan | 0:d5aa0b91d111 | 38 | char str1[25]= ""; |
kuldipmaharjan | 0:d5aa0b91d111 | 39 | do |
kuldipmaharjan | 0:d5aa0b91d111 | 40 | { |
kuldipmaharjan | 0:d5aa0b91d111 | 41 | s1.putc(pc.getc()); //here we can get character from pc terminal |
kuldipmaharjan | 0:d5aa0b91d111 | 42 | str1[0]=s2.getc(); |
kuldipmaharjan | 0:d5aa0b91d111 | 43 | strcat(result_string,str1); |
kuldipmaharjan | 0:d5aa0b91d111 | 44 | //while (!pc.readable()) {}; //gets stuck here until it get smth from pc |
kuldipmaharjan | 0:d5aa0b91d111 | 45 | wait(0.1); |
kuldipmaharjan | 0:d5aa0b91d111 | 46 | } while (str1[0] != '!'); |
kuldipmaharjan | 0:d5aa0b91d111 | 47 | return result_string; |
kuldipmaharjan | 0:d5aa0b91d111 | 48 | } |
kuldipmaharjan | 0:d5aa0b91d111 | 49 | |
kuldipmaharjan | 0:d5aa0b91d111 | 50 |