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