Weather application for ECE4180 Project.
Dependencies: NetServices mbed HTTPClient 4DGL-uLCD-SE spxml
emic2.h@1:6f7f146715e4, 2018-12-07 (annotated)
- Committer:
- franceslee0518
- Date:
- Fri Dec 07 18:54:26 2018 +0000
- Revision:
- 1:6f7f146715e4
iWeather (Frances, Sherry)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
franceslee0518 | 1:6f7f146715e4 | 1 | #define speakf printf |
franceslee0518 | 1:6f7f146715e4 | 2 | class emic2 : public Stream |
franceslee0518 | 1:6f7f146715e4 | 3 | { |
franceslee0518 | 1:6f7f146715e4 | 4 | public : |
franceslee0518 | 1:6f7f146715e4 | 5 | emic2(PinName tx, PinName rx): _cmd(tx,rx) { |
franceslee0518 | 1:6f7f146715e4 | 6 | _cmd.baud(9600); |
franceslee0518 | 1:6f7f146715e4 | 7 | _cmd.putc('X'); //stop talking if reset and not a power on |
franceslee0518 | 1:6f7f146715e4 | 8 | _cmd.putc('\r'); // Send a CR in case the system is already up |
franceslee0518 | 1:6f7f146715e4 | 9 | wait(1); //delay for emic power on boot or reset respone |
franceslee0518 | 1:6f7f146715e4 | 10 | while (_cmd.getc() != ':'); // When the Emic 2 has initialized and is ready, it will send a single ':' |
franceslee0518 | 1:6f7f146715e4 | 11 | while (_cmd.readable()) _cmd.getc();//flush out buffer just in case |
franceslee0518 | 1:6f7f146715e4 | 12 | }; |
franceslee0518 | 1:6f7f146715e4 | 13 | void ready() { |
franceslee0518 | 1:6f7f146715e4 | 14 | while (_cmd.getc() != ':'); |
franceslee0518 | 1:6f7f146715e4 | 15 | while (_cmd.readable()) _cmd.getc();//flush out recieve buffer just in case |
franceslee0518 | 1:6f7f146715e4 | 16 | }; |
franceslee0518 | 1:6f7f146715e4 | 17 | int readable() { |
franceslee0518 | 1:6f7f146715e4 | 18 | return _cmd.readable(); |
franceslee0518 | 1:6f7f146715e4 | 19 | }; |
franceslee0518 | 1:6f7f146715e4 | 20 | int getc() { |
franceslee0518 | 1:6f7f146715e4 | 21 | return _cmd.getc(); |
franceslee0518 | 1:6f7f146715e4 | 22 | } |
franceslee0518 | 1:6f7f146715e4 | 23 | void volume(int x) { |
franceslee0518 | 1:6f7f146715e4 | 24 | speakf("V%D\r",x); |
franceslee0518 | 1:6f7f146715e4 | 25 | ready(); |
franceslee0518 | 1:6f7f146715e4 | 26 | } |
franceslee0518 | 1:6f7f146715e4 | 27 | void voice(int x) { |
franceslee0518 | 1:6f7f146715e4 | 28 | speakf("N%D\r",x); |
franceslee0518 | 1:6f7f146715e4 | 29 | ready(); |
franceslee0518 | 1:6f7f146715e4 | 30 | } |
franceslee0518 | 1:6f7f146715e4 | 31 | protected : |
franceslee0518 | 1:6f7f146715e4 | 32 | Serial _cmd; |
franceslee0518 | 1:6f7f146715e4 | 33 | //used by printf - supply it and printf works! |
franceslee0518 | 1:6f7f146715e4 | 34 | virtual int _putc(int c) { |
franceslee0518 | 1:6f7f146715e4 | 35 | _cmd.putc(c); |
franceslee0518 | 1:6f7f146715e4 | 36 | return 0; |
franceslee0518 | 1:6f7f146715e4 | 37 | }; |
franceslee0518 | 1:6f7f146715e4 | 38 | virtual int _getc() { |
franceslee0518 | 1:6f7f146715e4 | 39 | return -1; |
franceslee0518 | 1:6f7f146715e4 | 40 | }; |
franceslee0518 | 1:6f7f146715e4 | 41 | }; |