server/client
Dependencies: mbed NetServicesMin
main.cpp@1:6e61ee662fd3, 2012-02-23 (annotated)
- 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?
User | Revision | Line number | New 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 | } |