ppp for lpc1768 with phs bridge
Dependencies: AbitModemInterface mbed-rtos mbed
main.cpp@0:fab2fa3c525b, 2015-07-01 (annotated)
- Committer:
- phsfan
- Date:
- Wed Jul 01 01:01:10 2015 +0000
- Revision:
- 0:fab2fa3c525b
test build;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
phsfan | 0:fab2fa3c525b | 1 | #include "mbed.h" |
phsfan | 0:fab2fa3c525b | 2 | #include "AbitModemInterface.h" |
phsfan | 0:fab2fa3c525b | 3 | #include <new> |
phsfan | 0:fab2fa3c525b | 4 | #include "TinyHTTP.h" |
phsfan | 0:fab2fa3c525b | 5 | |
phsfan | 0:fab2fa3c525b | 6 | //#define BAUD 120000 |
phsfan | 0:fab2fa3c525b | 7 | #define BAUD 9600 |
phsfan | 0:fab2fa3c525b | 8 | |
phsfan | 0:fab2fa3c525b | 9 | Serial pc(USBTX, USBRX); |
phsfan | 0:fab2fa3c525b | 10 | DigitalOut rts(p11); |
phsfan | 0:fab2fa3c525b | 11 | |
phsfan | 0:fab2fa3c525b | 12 | void no_memory () { |
phsfan | 0:fab2fa3c525b | 13 | error("no_memory\r\n"); |
phsfan | 0:fab2fa3c525b | 14 | exit(-1); |
phsfan | 0:fab2fa3c525b | 15 | } |
phsfan | 0:fab2fa3c525b | 16 | |
phsfan | 0:fab2fa3c525b | 17 | void onrecv (char *buf, int len) { |
phsfan | 0:fab2fa3c525b | 18 | int i; |
phsfan | 0:fab2fa3c525b | 19 | pc.printf("recv: "); |
phsfan | 0:fab2fa3c525b | 20 | for (i = 0; i < len; i ++) { |
phsfan | 0:fab2fa3c525b | 21 | pc.putc(buf[i]); |
phsfan | 0:fab2fa3c525b | 22 | } |
phsfan | 0:fab2fa3c525b | 23 | } |
phsfan | 0:fab2fa3c525b | 24 | |
phsfan | 0:fab2fa3c525b | 25 | void ppp(void const*) // PPP |
phsfan | 0:fab2fa3c525b | 26 | { |
phsfan | 0:fab2fa3c525b | 27 | AbitModemInterface modem(p13, p14, NC, NC, p12, BAUD); // tx, rx, cts, rtx, reset |
phsfan | 0:fab2fa3c525b | 28 | |
phsfan | 0:fab2fa3c525b | 29 | printf("connect\r\n"); |
phsfan | 0:fab2fa3c525b | 30 | int ret = modem.connect("prin", "prin"); |
phsfan | 0:fab2fa3c525b | 31 | if(ret) { |
phsfan | 0:fab2fa3c525b | 32 | printf("Could not connect\r\n"); |
phsfan | 0:fab2fa3c525b | 33 | return; |
phsfan | 0:fab2fa3c525b | 34 | } |
phsfan | 0:fab2fa3c525b | 35 | |
phsfan | 0:fab2fa3c525b | 36 | printf("IP Address %s\r\n", modem.getIPAddress()); |
phsfan | 0:fab2fa3c525b | 37 | |
phsfan | 0:fab2fa3c525b | 38 | //GET data |
phsfan | 0:fab2fa3c525b | 39 | printf("Trying to fetch page...\r\n"); |
phsfan | 0:fab2fa3c525b | 40 | httpRequest(METHOD_GET, "developer.mbed.org", 80, "/media/uploads/phsfan/hello.txt", NULL, NULL, &onrecv); |
phsfan | 0:fab2fa3c525b | 41 | printf("\r\n"); |
phsfan | 0:fab2fa3c525b | 42 | |
phsfan | 0:fab2fa3c525b | 43 | Thread::wait(5000); |
phsfan | 0:fab2fa3c525b | 44 | |
phsfan | 0:fab2fa3c525b | 45 | printf("exit\r\n"); |
phsfan | 0:fab2fa3c525b | 46 | modem.disconnect(); |
phsfan | 0:fab2fa3c525b | 47 | } |
phsfan | 0:fab2fa3c525b | 48 | |
phsfan | 0:fab2fa3c525b | 49 | void sm(void const*) // short mail (SMS) |
phsfan | 0:fab2fa3c525b | 50 | { |
phsfan | 0:fab2fa3c525b | 51 | AbitModemInterface modem(p13, p14, NC, NC, p12, BAUD); // tx, rx, cts, rtx, reset |
phsfan | 0:fab2fa3c525b | 52 | |
phsfan | 0:fab2fa3c525b | 53 | modem.sendSM("07012345678", "Hello"); |
phsfan | 0:fab2fa3c525b | 54 | |
phsfan | 0:fab2fa3c525b | 55 | while(true) |
phsfan | 0:fab2fa3c525b | 56 | { |
phsfan | 0:fab2fa3c525b | 57 | char num[17]; |
phsfan | 0:fab2fa3c525b | 58 | char msg[64]; |
phsfan | 0:fab2fa3c525b | 59 | |
phsfan | 0:fab2fa3c525b | 60 | int ret = modem.getSM(num, msg, 64); |
phsfan | 0:fab2fa3c525b | 61 | if (!ret) { |
phsfan | 0:fab2fa3c525b | 62 | printf("%s : %s\n", num, msg); |
phsfan | 0:fab2fa3c525b | 63 | } |
phsfan | 0:fab2fa3c525b | 64 | |
phsfan | 0:fab2fa3c525b | 65 | Thread::wait(3000); |
phsfan | 0:fab2fa3c525b | 66 | } |
phsfan | 0:fab2fa3c525b | 67 | } |
phsfan | 0:fab2fa3c525b | 68 | |
phsfan | 0:fab2fa3c525b | 69 | int main() { |
phsfan | 0:fab2fa3c525b | 70 | set_new_handler(no_memory); |
phsfan | 0:fab2fa3c525b | 71 | |
phsfan | 0:fab2fa3c525b | 72 | pc.baud(115200); |
phsfan | 0:fab2fa3c525b | 73 | pc.printf("** PHS\r\n"); |
phsfan | 0:fab2fa3c525b | 74 | Thread::wait(1000); |
phsfan | 0:fab2fa3c525b | 75 | rts = 0; |
phsfan | 0:fab2fa3c525b | 76 | |
phsfan | 0:fab2fa3c525b | 77 | Thread testTask(ppp, NULL, osPriorityNormal, 1024 * 4); |
phsfan | 0:fab2fa3c525b | 78 | // Thread smTask(sm, NULL, osPriorityNormal, 1024 * 4); |
phsfan | 0:fab2fa3c525b | 79 | DigitalOut led(LED1); |
phsfan | 0:fab2fa3c525b | 80 | while(1) |
phsfan | 0:fab2fa3c525b | 81 | { |
phsfan | 0:fab2fa3c525b | 82 | led=!led; |
phsfan | 0:fab2fa3c525b | 83 | Thread::wait(1000); |
phsfan | 0:fab2fa3c525b | 84 | } |
phsfan | 0:fab2fa3c525b | 85 | } |
phsfan | 0:fab2fa3c525b | 86 | |
phsfan | 0:fab2fa3c525b | 87 | extern "C" |
phsfan | 0:fab2fa3c525b | 88 | void HardFault_Handler() { |
phsfan | 0:fab2fa3c525b | 89 | error("Hard Fault!\r\n"); |
phsfan | 0:fab2fa3c525b | 90 | } |