Ashley Mills
/
3GPrinter
Adafruit thermal receipt printer connected to a Vodafone K3770 dongle.
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #define __DEBUG__ 4 //Maximum verbosity 00002 #ifndef __MODULE__ 00003 #define __MODULE__ "net_3g_basic_http_test.cpp" 00004 #endif 00005 00006 #include "core/fwk.h" 00007 #include "mbed.h" 00008 00009 #include "rtos.h" 00010 00011 #include "if/VodafoneK3770.h" 00012 #include "HTTPClient.h" 00013 #include "AdafruitThermal.h" 00014 00015 DigitalOut led1(LED1); 00016 DigitalOut led2(LED2); 00017 DigitalOut led3(LED3); 00018 DigitalOut led4(LED4); 00019 void setLeds(bool a, bool b, bool c, bool d) { 00020 led1 = a; 00021 led2 = b; 00022 led3 = c; 00023 led4 = d; 00024 } 00025 00026 extern "C" void HardFault_Handler() { 00027 error("Hard Fault!\n"); 00028 } 00029 00030 void test(void const*) { 00031 VodafoneK3770 modem; 00032 HTTPClient http; 00033 AdafruitThermal printer(p13,p14); 00034 printer.begin(); 00035 00036 char str[512]; 00037 char numBuffer[20]; 00038 char msgBuffer[256]; 00039 00040 //int ret = modem.connect("pp.vodafone.co.uk", "web", "web"); 00041 //int ret = modem.connect("internet", "web", "web"); 00042 int ret = OK; 00043 if(ret != OK) 00044 return; 00045 00046 size_t numSMS; 00047 00048 //modem.sendSM("07825608771","this is a test"); 00049 00050 while(true) { 00051 DBG("Checking SM count"); 00052 00053 if(modem.getSMCount(&numSMS)==OK) { 00054 DBG("getSMCount success"); 00055 DBG("numSMS: %d",numSMS); 00056 if(numSMS>0) { 00057 DBG("SM count > 0"); 00058 if(modem.getSM(numBuffer,msgBuffer,256)==OK) { 00059 DBG("message received"); 00060 DBG("num: %s",numBuffer); 00061 DBG("msg: %s",msgBuffer); 00062 00063 printer.print(msgBuffer); 00064 printer.feed(1); 00065 } 00066 } 00067 00068 } 00069 Thread::wait(5000); 00070 00071 } 00072 00073 // 00074 00075 DBG("Trying to fetch page..."); 00076 ret = http.get("http://mbed.org/media/uploads/donatien/hello.txt", str, 128); 00077 if (ret == OK) { 00078 DBG("Page fetched successfully - read %d characters", strlen(str)); 00079 DBG("Result: %s", str); 00080 } else { 00081 WARN("Error - ret = %d - HTTP return code = %d", ret, http.getHTTPResponseCode()); 00082 } 00083 00084 HTTPMap map; 00085 HTTPText text(str, 512); 00086 map.put("Hello", "World"); 00087 map.put("test", "1234"); 00088 DBG("Trying to post data..."); 00089 ret = http.post("http://httpbin.org/post", map, &text); 00090 if (ret == OK) { 00091 DBG("Executed POST successfully - read %d characters", strlen(str)); 00092 DBG("Result: %s", str); 00093 } else { 00094 WARN("Error - ret = %d - HTTP return code = %d", ret, http.getHTTPResponseCode()); 00095 } 00096 00097 00098 modem.disconnect(); 00099 DBG("Disconnected"); 00100 00101 while (1) { 00102 Thread::wait(100); 00103 } 00104 } 00105 00106 void keepAlive(void const*) { 00107 while (1) { 00108 led1 = !led1; 00109 Thread::wait(500); 00110 } 00111 } 00112 00113 int main() { 00114 00115 DBG_INIT(); 00116 /* 00117 VodafoneK3770 threeg; 00118 int ret = threeg.connect("pp.vodafone.co.uk", "web", "web"); 00119 if(ret==OK) { 00120 DBG("connection OK"); 00121 } 00122 */ 00123 00124 Thread testTask(test, NULL, osPriorityNormal, 1024 * 4); 00125 keepAlive(NULL); 00126 00127 return 0; 00128 }
Generated on Mon Jul 25 2022 12:39:28 by 1.7.2