ppp for lpc1768 with phs bridge

Dependencies:   AbitModemInterface mbed-rtos mbed

Committer:
phsfan
Date:
Wed Jul 01 01:01:10 2015 +0000
Revision:
0:fab2fa3c525b
test build;

Who changed what in which revision?

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