Vodafone K3770 dongle enabled receipt printer.

Dependencies:   AdafruitThermalPrinter VodafoneK3770LibArchive mbed

Fork of 3GPrinter by Ashley Mills

Committer:
ashleymills
Date:
Thu May 31 16:17:49 2012 +0000
Revision:
0:76691d4f3960
Child:
1:59abeafd95d2
init

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ashleymills 0:76691d4f3960 1 #define __DEBUG__ 4 //Maximum verbosity
ashleymills 0:76691d4f3960 2 #ifndef __MODULE__
ashleymills 0:76691d4f3960 3 #define __MODULE__ "net_3g_basic_http_test.cpp"
ashleymills 0:76691d4f3960 4 #endif
ashleymills 0:76691d4f3960 5
ashleymills 0:76691d4f3960 6 #include "core/fwk.h"
ashleymills 0:76691d4f3960 7 #include "mbed.h"
ashleymills 0:76691d4f3960 8
ashleymills 0:76691d4f3960 9 #include "rtos.h"
ashleymills 0:76691d4f3960 10
ashleymills 0:76691d4f3960 11 #include "if/VodafoneK3770.h"
ashleymills 0:76691d4f3960 12 #include "HTTPClient.h"
ashleymills 0:76691d4f3960 13 #include "AdafruitThermal.h"
ashleymills 0:76691d4f3960 14
ashleymills 0:76691d4f3960 15 DigitalOut led1(LED1);
ashleymills 0:76691d4f3960 16 DigitalOut led2(LED2);
ashleymills 0:76691d4f3960 17 DigitalOut led3(LED3);
ashleymills 0:76691d4f3960 18 DigitalOut led4(LED4);
ashleymills 0:76691d4f3960 19 void setLeds(bool a, bool b, bool c, bool d) {
ashleymills 0:76691d4f3960 20 led1 = a;
ashleymills 0:76691d4f3960 21 led2 = b;
ashleymills 0:76691d4f3960 22 led3 = c;
ashleymills 0:76691d4f3960 23 led4 = d;
ashleymills 0:76691d4f3960 24 }
ashleymills 0:76691d4f3960 25
ashleymills 0:76691d4f3960 26 extern "C" void HardFault_Handler() {
ashleymills 0:76691d4f3960 27 error("Hard Fault!\n");
ashleymills 0:76691d4f3960 28 }
ashleymills 0:76691d4f3960 29
ashleymills 0:76691d4f3960 30 void test(void const*) {
ashleymills 0:76691d4f3960 31 VodafoneK3770 modem;
ashleymills 0:76691d4f3960 32 HTTPClient http;
ashleymills 0:76691d4f3960 33 AdafruitThermal printer(p13,p14);
ashleymills 0:76691d4f3960 34 printer.begin();
ashleymills 0:76691d4f3960 35
ashleymills 0:76691d4f3960 36 char str[512];
ashleymills 0:76691d4f3960 37 char numBuffer[20];
ashleymills 0:76691d4f3960 38 char msgBuffer[256];
ashleymills 0:76691d4f3960 39
ashleymills 0:76691d4f3960 40 //int ret = modem.connect("pp.vodafone.co.uk", "web", "web");
ashleymills 0:76691d4f3960 41 //int ret = modem.connect("internet", "web", "web");
ashleymills 0:76691d4f3960 42 int ret = OK;
ashleymills 0:76691d4f3960 43 if(ret != OK)
ashleymills 0:76691d4f3960 44 return;
ashleymills 0:76691d4f3960 45
ashleymills 0:76691d4f3960 46 size_t numSMS;
ashleymills 0:76691d4f3960 47
ashleymills 0:76691d4f3960 48 //modem.sendSM("07825608771","this is a test");
ashleymills 0:76691d4f3960 49
ashleymills 0:76691d4f3960 50 while(true) {
ashleymills 0:76691d4f3960 51 DBG("Checking SM count");
ashleymills 0:76691d4f3960 52
ashleymills 0:76691d4f3960 53 if(modem.getSMCount(&numSMS)==OK) {
ashleymills 0:76691d4f3960 54 DBG("getSMCount success");
ashleymills 0:76691d4f3960 55 DBG("numSMS: %d",numSMS);
ashleymills 0:76691d4f3960 56 if(numSMS>0) {
ashleymills 0:76691d4f3960 57 DBG("SM count > 0");
ashleymills 0:76691d4f3960 58 if(modem.getSM(numBuffer,msgBuffer,256)==OK) {
ashleymills 0:76691d4f3960 59 DBG("message received");
ashleymills 0:76691d4f3960 60 DBG("num: %s",numBuffer);
ashleymills 0:76691d4f3960 61 DBG("msg: %s",msgBuffer);
ashleymills 0:76691d4f3960 62
ashleymills 0:76691d4f3960 63 printer.print(msgBuffer);
ashleymills 0:76691d4f3960 64 printer.feed(1);
ashleymills 0:76691d4f3960 65 }
ashleymills 0:76691d4f3960 66 }
ashleymills 0:76691d4f3960 67
ashleymills 0:76691d4f3960 68 }
ashleymills 0:76691d4f3960 69 Thread::wait(5000);
ashleymills 0:76691d4f3960 70
ashleymills 0:76691d4f3960 71 }
ashleymills 0:76691d4f3960 72
ashleymills 0:76691d4f3960 73 //
ashleymills 0:76691d4f3960 74
ashleymills 0:76691d4f3960 75 DBG("Trying to fetch page...");
ashleymills 0:76691d4f3960 76 ret = http.get("http://mbed.org/media/uploads/donatien/hello.txt", str, 128);
ashleymills 0:76691d4f3960 77 if (ret == OK) {
ashleymills 0:76691d4f3960 78 DBG("Page fetched successfully - read %d characters", strlen(str));
ashleymills 0:76691d4f3960 79 DBG("Result: %s", str);
ashleymills 0:76691d4f3960 80 } else {
ashleymills 0:76691d4f3960 81 WARN("Error - ret = %d - HTTP return code = %d", ret, http.getHTTPResponseCode());
ashleymills 0:76691d4f3960 82 }
ashleymills 0:76691d4f3960 83
ashleymills 0:76691d4f3960 84 HTTPMap map;
ashleymills 0:76691d4f3960 85 HTTPText text(str, 512);
ashleymills 0:76691d4f3960 86 map.put("Hello", "World");
ashleymills 0:76691d4f3960 87 map.put("test", "1234");
ashleymills 0:76691d4f3960 88 DBG("Trying to post data...");
ashleymills 0:76691d4f3960 89 ret = http.post("http://httpbin.org/post", map, &text);
ashleymills 0:76691d4f3960 90 if (ret == OK) {
ashleymills 0:76691d4f3960 91 DBG("Executed POST successfully - read %d characters", strlen(str));
ashleymills 0:76691d4f3960 92 DBG("Result: %s", str);
ashleymills 0:76691d4f3960 93 } else {
ashleymills 0:76691d4f3960 94 WARN("Error - ret = %d - HTTP return code = %d", ret, http.getHTTPResponseCode());
ashleymills 0:76691d4f3960 95 }
ashleymills 0:76691d4f3960 96
ashleymills 0:76691d4f3960 97
ashleymills 0:76691d4f3960 98 modem.disconnect();
ashleymills 0:76691d4f3960 99 DBG("Disconnected");
ashleymills 0:76691d4f3960 100
ashleymills 0:76691d4f3960 101 while (1) {
ashleymills 0:76691d4f3960 102 Thread::wait(100);
ashleymills 0:76691d4f3960 103 }
ashleymills 0:76691d4f3960 104 }
ashleymills 0:76691d4f3960 105
ashleymills 0:76691d4f3960 106 void keepAlive(void const*) {
ashleymills 0:76691d4f3960 107 while (1) {
ashleymills 0:76691d4f3960 108 led1 = !led1;
ashleymills 0:76691d4f3960 109 Thread::wait(500);
ashleymills 0:76691d4f3960 110 }
ashleymills 0:76691d4f3960 111 }
ashleymills 0:76691d4f3960 112
ashleymills 0:76691d4f3960 113 int main() {
ashleymills 0:76691d4f3960 114
ashleymills 0:76691d4f3960 115 DBG_INIT();
ashleymills 0:76691d4f3960 116 /*
ashleymills 0:76691d4f3960 117 VodafoneK3770 threeg;
ashleymills 0:76691d4f3960 118 int ret = threeg.connect("pp.vodafone.co.uk", "web", "web");
ashleymills 0:76691d4f3960 119 if(ret==OK) {
ashleymills 0:76691d4f3960 120 DBG("connection OK");
ashleymills 0:76691d4f3960 121 }
ashleymills 0:76691d4f3960 122 */
ashleymills 0:76691d4f3960 123
ashleymills 0:76691d4f3960 124 Thread testTask(test, NULL, osPriorityNormal, 1024 * 4);
ashleymills 0:76691d4f3960 125 keepAlive(NULL);
ashleymills 0:76691d4f3960 126
ashleymills 0:76691d4f3960 127 return 0;
ashleymills 0:76691d4f3960 128 }