Bluetooth mérés program

Fork of RN42-HelloWorld by Chris Styles

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?

UserRevisionLine numberNew 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 }