kEIS

Dependencies:   C12832_lcd EthernetInterface_ccx LM75B mbed-rtos mbed

Revision:
0:410dd8d5bd07
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Sep 28 16:37:47 2013 +0000
@@ -0,0 +1,149 @@
+#include "mbed.h"
+#include "EthernetInterface.h"
+#include "C12832_lcd.h"
+#include "LM75B.h"
+
+C12832_LCD lcd;
+
+const char* SERVER_ADDRESS = "192.168.50.121";
+const int SERVER_PORT      = 80;
+
+const char* MY_ADDRESS     = "192.168.50.125";
+const char* MY_MASK        = "255.255.255.0";
+const char* MY_GATEWAY     = "192.168.50.254";
+
+EthernetInterface eth;
+DigitalOut myled1(LED1);
+LM75B tmp(p28,p27);
+Serial pc(USBTX, USBRX); // tx, rx
+Serial dev_xbee(p9, p10);  // tx, rx        
+
+int main(void) {
+ float temp1 ;
+
+    int pkt_phase=0;
+    int pkt_count=0;
+    char* ch[16]={"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
+    char v_val[2];
+    int over_flag=0;
+    TCPSocketConnection socket;
+    char val;
+    int v_val_int;
+    int tmp1,tmp2, i, n;
+    int sd_data_on[20]={0x7E,0x00,0x10,0x17,0x01,0x00,0x13,0xA2,0x00,0x40,0x92,0xFF,0x77,0xFF,0xFE,0x02,0x44,0x32,0x05,0x70};
+    int sd_data_off[20]={0x7E,0x00,0x10,0x17,0x01,0x00,0x13,0xA2,0x00,0x40,0x92,0xFF,0x77,0xFF,0xFE,0x02,0x44,0x32,0x04,0x71};
+    lcd.cls();
+    
+    eth.init(MY_ADDRESS,MY_MASK,MY_GATEWAY);
+    eth.connect();
+    pc.printf("IP Address is %s\n", eth.getIPAddress());
+    
+    while(1){    
+        myled1=1;
+        val=dev_xbee.getc();
+        pkt_count++;
+        if(pkt_phase==0 && val==0x7E){
+            pkt_phase=1;
+            pkt_count=1;
+        }
+    
+        if(pkt_phase==1 && pkt_count==4){
+            if( val==0x92 ){
+                pkt_phase=2;
+            }else{
+                pkt_count=0;
+                pkt_phase=0;
+            }
+        }   
+    
+        if(pkt_phase==2 && pkt_count==12){
+            if( val==0x77){
+                pkt_phase=3;
+            }else{
+                pkt_count=0;
+                pkt_phase=0;
+            }
+        }
+  
+    
+        if(pkt_phase==3 && pkt_count==22){
+            pkt_phase=4;
+            v_val[0]=val;
+        }
+    
+        if(pkt_phase==4 && pkt_count==23){
+            pkt_phase=0;
+            pkt_count=0;
+            v_val[1]=val;
+
+            v_val_int = (int)v_val[0]*256 + (int)v_val[1];
+            if(v_val_int < 1000 ){
+                for(i=0 ; i<20 ; i++){
+                    dev_xbee.putc(sd_data_on[i]);
+                }
+            }
+            if(v_val_int >= 1000 ){
+                for(i=0 ; i<20 ; i++){
+                    dev_xbee.putc(sd_data_off[i]);
+                }
+            }
+            lcd.cls();
+            lcd.locate(0,3);
+            lcd.printf("v_val1:%d ",v_val_int);
+            temp1=tmp.read();
+            if (socket.connect(SERVER_ADDRESS, SERVER_PORT) < 0) {
+                pc.printf("Unable to connect to (%s) on port (%d)\n", SERVER_ADDRESS, SERVER_PORT);
+            }else {
+                pc.printf("connection succeded");
+                char buffer[900];
+                sprintf(buffer,"POST /next7/REST/Record/HayaLab03 HTTP/1.1\r\n"
+                    "Host: 192.168.50.121\r\n"
+                    "Content-Type: application/xml\r\n"
+                    "Content-Length: 690\r\n"
+                    "\r\n" 
+                    "<PostData xmlns:a=\"http://schemas.microsoft.com/2003/10/Serialization/Arrays\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n"
+                    "<PassCode>A123</PassCode>\r\n"
+                    "<StrDataKey />\r\n"
+                    "<StrDataValue />\r\n"
+                    "<NumDataKey>\r\n"
+                    "<a:string>Temp1</a:string>\r\n"
+                    "<a:string>lx1</a:string>\r\n"
+                    "</NumDataKey>\r\n"
+                    "<NumDataValue>\r\n"
+                    "<a:decimal>%.2f</a:decimal>\r\n"
+                    "<a:decimal>%d</a:decimal>\r\n"
+                    "</NumDataValue>\r\n"
+                    "<DatetimeDataKey />\r\n"
+                    "<DatetimeDataValue />\r\n"
+                    "<ExNumDataKey />\r\n"
+                    "<ExNumDataValue />\r\n"
+                    "</PostData>\r\n"
+                ,temp1, v_val_int);
+            // Send xml to Server 
+                socket.send_all(buffer,sizeof(buffer) - 1);
+            
+            // receive reply
+                n=0;
+                char buf[400];
+                n = socket.receive(buf, 400);
+                buf[n] = '\0';
+                // printf("%d %s",n, buf);  
+                lcd.locate(0,15);
+                lcd.printf("temperature=%.2f\n",temp1);        
+            }
+            socket.close();
+            //   Thread::wait(60000);
+    
+
+        }
+    
+    
+    tmp1 = val/16;
+    tmp2 = val%16;
+    pc.printf("%s%s",ch[tmp1],ch[tmp2]);
+    myled1=0;
+    
+    }
+
+
+}