Bluetooth mérés program
Fork of RN42-HelloWorld by
main.cpp@3:cd566919776e, 2013-03-04 (annotated)
- Committer:
- szabolor
- Date:
- Mon Mar 04 10:01:58 2013 +0000
- Revision:
- 3:cd566919776e
- Parent:
- 2:584102a0bf36
- Child:
- 4:acd929bf4c92
Parancsok fogad?sa bluetoothr?l
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chris | 0:c1134839fe1a | 1 | #include "mbed.h" |
szabolor | 3:cd566919776e | 2 | #include <cstring> |
chris | 0:c1134839fe1a | 3 | |
szabolor | 3:cd566919776e | 4 | Timer timer; // az időzítő, ami a mérés időpontját biztosítja |
szabolor | 3:cd566919776e | 5 | Ticker meres; // egy időzített feladat, ami végrehajta a mérést |
szabolor | 3:cd566919776e | 6 | AnalogIn an(p15); // az analóg pin |
szabolor | 3:cd566919776e | 7 | Serial rn42(p9,p10); // a bluetooth serial lábai |
szabolor | 3:cd566919776e | 8 | Serial pc(USBTX, USBRX);// a számítógépes serial kapcsolat |
chris | 0:c1134839fe1a | 9 | DigitalOut myled(LED1); |
szabolor | 3:cd566919776e | 10 | char c; // egy karakter, amit kiolvas a serialread részben |
szabolor | 3:cd566919776e | 11 | char buf[250]; // a karaktersorozat gyűjtője |
szabolor | 3:cd566919776e | 12 | char p = 0; // a gyűjtő karaktersorozat aktív elemének az indexe |
szabolor | 3:cd566919776e | 13 | float szorzo = 3.3; // azaz [V]-ban kapom vissza az értékeket |
szabolor | 3:cd566919776e | 14 | char elinditva = 0; // 0 ha nem folyik mérés; 1 ha igen |
szabolor | 3:cd566919776e | 15 | float d_ido = 0.005; // két mérés között eltelt idő |
chris | 0:c1134839fe1a | 16 | |
szabolor | 2:584102a0bf36 | 17 | void mfunc() { |
szabolor | 3:cd566919776e | 18 | // mért adat bluetoothra küldése |
szabolor | 3:cd566919776e | 19 | rn42.printf("%d %f\n",timer.read_ms(), an*szorzo); |
szabolor | 3:cd566919776e | 20 | } |
szabolor | 3:cd566919776e | 21 | |
szabolor | 3:cd566919776e | 22 | void parancs(char cmd[]){ |
szabolor | 3:cd566919776e | 23 | pc.printf("\nparancs: %s\n",cmd); |
szabolor | 3:cd566919776e | 24 | if (strcmp(cmd,"start") == 0 && elinditva == 0){ |
szabolor | 3:cd566919776e | 25 | // azaz el akarom indítani a mérést. |
szabolor | 3:cd566919776e | 26 | timer.start(); |
szabolor | 3:cd566919776e | 27 | meres.attach(&mfunc, d_ido); |
szabolor | 3:cd566919776e | 28 | elinditva = 1; |
szabolor | 3:cd566919776e | 29 | } |
szabolor | 3:cd566919776e | 30 | if (strcmp(cmd,"stop") == 0 && elinditva == 1){ |
szabolor | 3:cd566919776e | 31 | // azaz meg akarom állítani a mérést. |
szabolor | 3:cd566919776e | 32 | meres.detach(); |
szabolor | 3:cd566919776e | 33 | timer.stop(); |
szabolor | 3:cd566919776e | 34 | timer.reset(); |
szabolor | 3:cd566919776e | 35 | elinditva = 0; |
szabolor | 3:cd566919776e | 36 | } |
szabolor | 2:584102a0bf36 | 37 | } |
szabolor | 2:584102a0bf36 | 38 | |
chris | 0:c1134839fe1a | 39 | int main() { |
chris | 0:c1134839fe1a | 40 | rn42.baud(115200); |
szabolor | 1:581f6547e8aa | 41 | pc.baud(460800); |
szabolor | 2:584102a0bf36 | 42 | |
szabolor | 3:cd566919776e | 43 | // biztosítom, hogy kapjon bejövő adatot! |
chris | 0:c1134839fe1a | 44 | while (1) { |
szabolor | 1:581f6547e8aa | 45 | while (rn42.readable()) { |
szabolor | 1:581f6547e8aa | 46 | c = rn42.getc(); |
szabolor | 1:581f6547e8aa | 47 | pc.putc(c); |
szabolor | 3:cd566919776e | 48 | if (c!='\n') { |
szabolor | 3:cd566919776e | 49 | buf[p++]=c; |
szabolor | 3:cd566919776e | 50 | } else { |
szabolor | 3:cd566919776e | 51 | pc.printf("%s\n",buf); |
szabolor | 3:cd566919776e | 52 | parancs(buf); |
szabolor | 3:cd566919776e | 53 | // visszaállítás a kezdeti értékre |
szabolor | 3:cd566919776e | 54 | memset(buf, 0, 100); |
szabolor | 3:cd566919776e | 55 | p=0; |
szabolor | 3:cd566919776e | 56 | } |
chris | 0:c1134839fe1a | 57 | } |
chris | 0:c1134839fe1a | 58 | } |
szabolor | 3:cd566919776e | 59 | } |