server/client

Dependencies:   mbed NetServicesMin

Committer:
recotana
Date:
Thu Feb 23 02:38:05 2012 +0000
Revision:
1:6e61ee662fd3
Parent:
0:432b571e11a3
added standalone test mode

Who changed what in which revision?

UserRevisionLine numberNew contents of line
recotana 0:432b571e11a3 1 #include "mbed.h"
recotana 1:6e61ee662fd3 2 #include "xbee_lib.h"
recotana 0:432b571e11a3 3 #include "EthernetNetIf.h"
recotana 0:432b571e11a3 4 #include "config.h"
recotana 0:432b571e11a3 5 #include "tcp_server.h"
recotana 0:432b571e11a3 6 #include "tcp_client.h"
recotana 1:6e61ee662fd3 7 #include "xbee_rec_route.h"
recotana 1:6e61ee662fd3 8
recotana 1:6e61ee662fd3 9 #include "leds.h"
recotana 0:432b571e11a3 10
recotana 0:432b571e11a3 11 EthernetNetIf eth ;
recotana 0:432b571e11a3 12
recotana 0:432b571e11a3 13 Ticker connectCheck;
recotana 1:6e61ee662fd3 14
recotana 1:6e61ee662fd3 15 #ifdef _SERVER_TEST_MODE_
recotana 1:6e61ee662fd3 16
recotana 1:6e61ee662fd3 17 #include "data_models.h"
recotana 1:6e61ee662fd3 18
recotana 1:6e61ee662fd3 19 DigitalIn recSw(p20);
recotana 1:6e61ee662fd3 20 Timeout chatter;
recotana 1:6e61ee662fd3 21 bool isPressed;
recotana 1:6e61ee662fd3 22
recotana 1:6e61ee662fd3 23 void testModeInit(void)
recotana 1:6e61ee662fd3 24 {
recotana 1:6e61ee662fd3 25 recSw.mode(PullUp);
recotana 1:6e61ee662fd3 26 }
recotana 1:6e61ee662fd3 27
recotana 1:6e61ee662fd3 28 void testSendRecieveData()
recotana 1:6e61ee662fd3 29 {
recotana 1:6e61ee662fd3 30 Payload payload;
recotana 1:6e61ee662fd3 31 initPayload(&payload);
recotana 1:6e61ee662fd3 32 payload.size=sizeof(Payload);
recotana 1:6e61ee662fd3 33
recotana 1:6e61ee662fd3 34 payload.id.head=0x0000;
recotana 1:6e61ee662fd3 35 uint8_t tmpid[14]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x40,0x41,0x42,0x43,0x44};
recotana 1:6e61ee662fd3 36 for(int i=0;i<sizeof(tmpid);i++) payload.id.personalId[i]=tmpid[i];
recotana 1:6e61ee662fd3 37
recotana 1:6e61ee662fd3 38
recotana 1:6e61ee662fd3 39 payload.message.frameNumber=1;
recotana 1:6e61ee662fd3 40 payload.message.device=LED_RECIEVER;
recotana 1:6e61ee662fd3 41 payload.message.command=RECIEVE;
recotana 1:6e61ee662fd3 42
recotana 1:6e61ee662fd3 43 uint8_t tmpdata[42]={
recotana 1:6e61ee662fd3 44 1,2,3,4,5,6,7,8,9,10,
recotana 1:6e61ee662fd3 45 11,12,13,14,15,16,17,18,19,20,
recotana 1:6e61ee662fd3 46 21,22,23,24,25,26,27,28,29,30,
recotana 1:6e61ee662fd3 47 31,32,33,34,35,36,37,38,39,40,
recotana 1:6e61ee662fd3 48 41,42};
recotana 1:6e61ee662fd3 49 for(int i=0;i<sizeof(tmpdata);i++) payload.message.data[i]=tmpdata[i];
recotana 1:6e61ee662fd3 50
recotana 1:6e61ee662fd3 51 payload.message.totalSize=
recotana 1:6e61ee662fd3 52 sizeof(payload.message.totalSize)
recotana 1:6e61ee662fd3 53 +sizeof(payload.message.frameNumber)
recotana 1:6e61ee662fd3 54 +sizeof(payload.message.device)
recotana 1:6e61ee662fd3 55 +sizeof(payload.message.command)
recotana 1:6e61ee662fd3 56 +sizeof(payload.message.data);
recotana 1:6e61ee662fd3 57
recotana 1:6e61ee662fd3 58 tcpSendPayload(&payload);
recotana 1:6e61ee662fd3 59
recotana 1:6e61ee662fd3 60 }
recotana 1:6e61ee662fd3 61
recotana 1:6e61ee662fd3 62
recotana 1:6e61ee662fd3 63 #endif
recotana 1:6e61ee662fd3 64
recotana 1:6e61ee662fd3 65
recotana 1:6e61ee662fd3 66
recotana 0:432b571e11a3 67 int main() {
recotana 0:432b571e11a3 68
recotana 1:6e61ee662fd3 69 #ifdef _SERVER_TEST_MODE_
recotana 1:6e61ee662fd3 70 testModeInit();
recotana 1:6e61ee662fd3 71 #endif
recotana 1:6e61ee662fd3 72
recotana 1:6e61ee662fd3 73 xbeeInit();
recotana 0:432b571e11a3 74
recotana 1:6e61ee662fd3 75 EthernetNetIf eth( // -- static IP address
recotana 0:432b571e11a3 76 IpAddr(kSserverIp), // IP Address
recotana 0:432b571e11a3 77 IpAddr(kSubnetMask), // Subnet Mask
recotana 0:432b571e11a3 78 IpAddr(kRouterIp), // Default Gateway
recotana 0:432b571e11a3 79 IpAddr(kRouterIp) // DNS Server
recotana 0:432b571e11a3 80 ) ;
recotana 0:432b571e11a3 81
recotana 0:432b571e11a3 82 if( eth.setup() != ETH_OK )
recotana 0:432b571e11a3 83 {
recotana 1:6e61ee662fd3 84 DBGF("Ether Setup Error\r\n");
recotana 0:432b571e11a3 85 return -1;
recotana 0:432b571e11a3 86 }
recotana 1:6e61ee662fd3 87 DBGF("Setup OK\r\n");
recotana 0:432b571e11a3 88
recotana 0:432b571e11a3 89 IpAddr ip = eth.getIp() ;
recotana 1:6e61ee662fd3 90 DBGV("mbed IP Address is [%d.%d.%d.%d]\r\n", ip[0], ip[1], ip[2], ip[3]) ;
recotana 0:432b571e11a3 91
recotana 0:432b571e11a3 92 serverInit();
recotana 1:6e61ee662fd3 93 clientInit();
recotana 0:432b571e11a3 94
recotana 0:432b571e11a3 95 connectCheckStart( IpAddr(kClientIp),kClientPort );
recotana 1:6e61ee662fd3 96 wait(2);
recotana 1:6e61ee662fd3 97 ledEther();
recotana 1:6e61ee662fd3 98 ledXBee();
recotana 1:6e61ee662fd3 99 ledDevice();
recotana 0:432b571e11a3 100
recotana 0:432b571e11a3 101 while(1) {
recotana 0:432b571e11a3 102 Net::poll();
recotana 1:6e61ee662fd3 103
recotana 1:6e61ee662fd3 104 #ifdef _SERVER_TEST_MODE_
recotana 1:6e61ee662fd3 105 if(!recSw){
recotana 1:6e61ee662fd3 106 testSendRecieveData();
recotana 1:6e61ee662fd3 107 wait(2);
recotana 1:6e61ee662fd3 108 }
recotana 1:6e61ee662fd3 109 #else
recotana 1:6e61ee662fd3 110 xbeeRecieveRouting();
recotana 1:6e61ee662fd3 111 #endif
recotana 1:6e61ee662fd3 112
recotana 0:432b571e11a3 113 }
recotana 0:432b571e11a3 114 }