tes

Dependencies:   ASyncTicker EthernetInterface WebSocketClient mbed-rtos mbed MbedJSONValue xbee_lib

Committer:
ammanvedi
Date:
Wed Jun 18 17:45:56 2014 +0000
Revision:
8:0d7ab8af0e59
Parent:
7:7039646b7083
x;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ammanvedi 5:80a7d03c94f5 1 #include "btNode.h"
ammanvedi 5:80a7d03c94f5 2 #include "mbed.h"
ammanvedi 5:80a7d03c94f5 3 #include "xbee.h"
ammanvedi 5:80a7d03c94f5 4 #include "xbeeFrame.h"
ammanvedi 7:7039646b7083 5 #include "MbedJSONValue.h"
ammanvedi 5:80a7d03c94f5 6
ammanvedi 5:80a7d03c94f5 7 const char btNode::ADDRESS[8] = {0x00, 0x13, 0xA2, 0x00, 0x40, 0x9B, 0x6D, 0xB0};
ammanvedi 5:80a7d03c94f5 8
ammanvedi 7:7039646b7083 9 btNode::btNode(int D_ID, std::string D_NAME, std::string H_ID){
ammanvedi 5:80a7d03c94f5 10 ID = D_ID;
ammanvedi 7:7039646b7083 11 DeviceName = D_NAME;
ammanvedi 7:7039646b7083 12 DisplayString = "{Apple:$1;}";
ammanvedi 7:7039646b7083 13 HubID = H_ID;
ammanvedi 7:7039646b7083 14
ammanvedi 5:80a7d03c94f5 15
ammanvedi 5:80a7d03c94f5 16 }
ammanvedi 7:7039646b7083 17
ammanvedi 7:7039646b7083 18 MbedJSONValue btNode::GetAsJSON()
ammanvedi 7:7039646b7083 19 {
ammanvedi 7:7039646b7083 20 MbedJSONValue thisnode;
ammanvedi 7:7039646b7083 21
ammanvedi 7:7039646b7083 22 //std::string s;
ammanvedi 7:7039646b7083 23
ammanvedi 7:7039646b7083 24 // fill the object
ammanvedi 7:7039646b7083 25 thisnode["device_id"] = ID;
ammanvedi 7:7039646b7083 26 thisnode["device_name"] = DeviceName;
ammanvedi 7:7039646b7083 27 thisnode["device_dataset"] = DisplayString;
ammanvedi 7:7039646b7083 28 thisnode["device_hub_id"] = HubID;
ammanvedi 7:7039646b7083 29
ammanvedi 7:7039646b7083 30 // serialize it into a JSON string
ammanvedi 7:7039646b7083 31 //s = request.serialize();
ammanvedi 7:7039646b7083 32
ammanvedi 7:7039646b7083 33 return thisnode;
ammanvedi 7:7039646b7083 34 }
ammanvedi 7:7039646b7083 35
ammanvedi 7:7039646b7083 36 std::string btNode::getName()
ammanvedi 7:7039646b7083 37 {
ammanvedi 7:7039646b7083 38 return DeviceName;
ammanvedi 7:7039646b7083 39 }
ammanvedi 7:7039646b7083 40
ammanvedi 7:7039646b7083 41 std::string btNode::getDisplayString()
ammanvedi 7:7039646b7083 42 {
ammanvedi 7:7039646b7083 43 return DisplayString;
ammanvedi 7:7039646b7083 44 }
ammanvedi 7:7039646b7083 45
ammanvedi 7:7039646b7083 46 void btNode::setName(std::string newname)
ammanvedi 7:7039646b7083 47 {
ammanvedi 7:7039646b7083 48 DeviceName = newname;
ammanvedi 7:7039646b7083 49 }
ammanvedi 5:80a7d03c94f5 50
ammanvedi 5:80a7d03c94f5 51 std::string btNode::SendMessage(std::string msg) {
ammanvedi 5:80a7d03c94f5 52
ammanvedi 5:80a7d03c94f5 53 xbeeFrame xbee(p9,
ammanvedi 5:80a7d03c94f5 54 p10,
ammanvedi 5:80a7d03c94f5 55 p11);
ammanvedi 5:80a7d03c94f5 56
ammanvedi 5:80a7d03c94f5 57 std::string full_msg = "";
ammanvedi 5:80a7d03c94f5 58
ammanvedi 5:80a7d03c94f5 59 char send_data[50] = "xbee string";
ammanvedi 5:80a7d03c94f5 60
ammanvedi 5:80a7d03c94f5 61 char to_send[100];
ammanvedi 5:80a7d03c94f5 62 char * p = to_send;
ammanvedi 5:80a7d03c94f5 63 char * r = send_data;
ammanvedi 5:80a7d03c94f5 64
ammanvedi 5:80a7d03c94f5 65 while (*r)
ammanvedi 5:80a7d03c94f5 66 {
ammanvedi 5:80a7d03c94f5 67 *p++ = *r++;
ammanvedi 5:80a7d03c94f5 68 }
ammanvedi 5:80a7d03c94f5 69
ammanvedi 5:80a7d03c94f5 70 *p++ = ' ';
ammanvedi 5:80a7d03c94f5 71 r = (char *)msg.c_str();
ammanvedi 5:80a7d03c94f5 72
ammanvedi 5:80a7d03c94f5 73 while (*r)
ammanvedi 5:80a7d03c94f5 74 {
ammanvedi 5:80a7d03c94f5 75 *p++ = *r++;
ammanvedi 5:80a7d03c94f5 76 }
ammanvedi 5:80a7d03c94f5 77
ammanvedi 5:80a7d03c94f5 78 *p++ = '\r';
ammanvedi 5:80a7d03c94f5 79 *p = '\0';
ammanvedi 5:80a7d03c94f5 80
ammanvedi 6:c1bd3fadce09 81 //printf("the data to send from class is %s\n\r\n\r", to_send);
ammanvedi 5:80a7d03c94f5 82
ammanvedi 5:80a7d03c94f5 83 char data_buf[50];
ammanvedi 5:80a7d03c94f5 84
ammanvedi 5:80a7d03c94f5 85 xbee.InitFrame();
ammanvedi 5:80a7d03c94f5 86 xbee.SetDestination((unsigned char *) ADDRESS);
ammanvedi 5:80a7d03c94f5 87 xbee.SetPayload(to_send);
ammanvedi 6:c1bd3fadce09 88 printf("--> Sending payload: %s\n\r\n\r", to_send);
ammanvedi 5:80a7d03c94f5 89 xbee.AssembleFrame();
ammanvedi 5:80a7d03c94f5 90 xbee.SendFrame();
ammanvedi 5:80a7d03c94f5 91
ammanvedi 5:80a7d03c94f5 92
ammanvedi 5:80a7d03c94f5 93
ammanvedi 5:80a7d03c94f5 94 for (int i = 0; i < 2; i++)
ammanvedi 5:80a7d03c94f5 95 {
ammanvedi 5:80a7d03c94f5 96 xbee.ReceiveFrame(data_buf, 500);
ammanvedi 5:80a7d03c94f5 97
ammanvedi 5:80a7d03c94f5 98 if (xbee.frameReceived)
ammanvedi 5:80a7d03c94f5 99 {
ammanvedi 5:80a7d03c94f5 100 xbee.frameReceived = 0;
ammanvedi 5:80a7d03c94f5 101
ammanvedi 5:80a7d03c94f5 102 if (xbee.GetType() == TX_STATUS)
ammanvedi 5:80a7d03c94f5 103 {
ammanvedi 5:80a7d03c94f5 104 if (xbee.GetStatus() == 0)
ammanvedi 5:80a7d03c94f5 105 {
ammanvedi 6:c1bd3fadce09 106 printf("--> Send success!\n\r");
ammanvedi 5:80a7d03c94f5 107 }
ammanvedi 5:80a7d03c94f5 108 else
ammanvedi 5:80a7d03c94f5 109 {
ammanvedi 6:c1bd3fadce09 110 printf("--> Send failed :(\n\r");
ammanvedi 6:c1bd3fadce09 111 //return "sending failed....";
ammanvedi 5:80a7d03c94f5 112 }
ammanvedi 5:80a7d03c94f5 113 }
ammanvedi 5:80a7d03c94f5 114 else if (xbee.GetType() == RX_PACKET_64)
ammanvedi 5:80a7d03c94f5 115 {
ammanvedi 6:c1bd3fadce09 116 printf("--> Received data: %s\n\r", data_buf);
ammanvedi 5:80a7d03c94f5 117 }
ammanvedi 5:80a7d03c94f5 118 }
ammanvedi 5:80a7d03c94f5 119 }
ammanvedi 5:80a7d03c94f5 120
ammanvedi 5:80a7d03c94f5 121
ammanvedi 5:80a7d03c94f5 122
ammanvedi 5:80a7d03c94f5 123 std::string response(data_buf);
ammanvedi 5:80a7d03c94f5 124 return response ;
ammanvedi 5:80a7d03c94f5 125
ammanvedi 5:80a7d03c94f5 126 }