![](/media/cache/profiles/d72a3078329eb92e65687d7652fdc7e7.jpg.50x50_q85.jpg)
init
Dependencies: WIZnet_Library mbed
Fork of W5500HelloWorld by
main.cpp@2:1e8031dab116, 2015-06-06 (annotated)
- Committer:
- ganeshgore
- Date:
- Sat Jun 06 15:37:41 2015 +0000
- Revision:
- 2:1e8031dab116
- Parent:
- 1:421fd0a7b5d7
initit;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bangbh | 0:412f9c1172b7 | 1 | #include "mbed.h" |
bangbh | 0:412f9c1172b7 | 2 | #include "WIZnetInterface.h" |
bangbh | 0:412f9c1172b7 | 3 | |
ganeshgore | 2:1e8031dab116 | 4 | #define USE_DHCP 1 |
bangbh | 0:412f9c1172b7 | 5 | |
bangbh | 0:412f9c1172b7 | 6 | #define LOOPBACKPORT 5000 |
bangbh | 0:412f9c1172b7 | 7 | |
ganeshgore | 1:421fd0a7b5d7 | 8 | const char * IP_Addr = "192.168.1.20"; |
bangbh | 0:412f9c1172b7 | 9 | const char * IP_Subnet = "255.255.255.0"; |
ganeshgore | 1:421fd0a7b5d7 | 10 | const char * IP_Gateway = "192.168.1.1"; |
ganeshgore | 1:421fd0a7b5d7 | 11 | unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x12,0x07,0x07}; |
bangbh | 0:412f9c1172b7 | 12 | |
bangbh | 0:412f9c1172b7 | 13 | DigitalOut myled1(LED1); |
bangbh | 0:412f9c1172b7 | 14 | Serial pc(USBTX, USBRX); |
bangbh | 0:412f9c1172b7 | 15 | |
ganeshgore | 1:421fd0a7b5d7 | 16 | //#ifdef TARGET_LPC11U68 |
ganeshgore | 1:421fd0a7b5d7 | 17 | SPI spi(PTD2,PTD3,PTD1); |
ganeshgore | 1:421fd0a7b5d7 | 18 | WIZnetInterface ethernet(&spi,PTD0,PTA20); |
ganeshgore | 1:421fd0a7b5d7 | 19 | //#endif |
bangbh | 0:412f9c1172b7 | 20 | |
ganeshgore | 1:421fd0a7b5d7 | 21 | int main() |
ganeshgore | 1:421fd0a7b5d7 | 22 | { |
ganeshgore | 1:421fd0a7b5d7 | 23 | |
ganeshgore | 1:421fd0a7b5d7 | 24 | uint8_t mac[6]; |
bangbh | 0:412f9c1172b7 | 25 | |
ganeshgore | 1:421fd0a7b5d7 | 26 | // set these to match the mac address on the Arduino Ethernet Shield |
ganeshgore | 1:421fd0a7b5d7 | 27 | mac[0] = 0x90; mac[1] = 0xa2; mac[2] = 0xda; |
ganeshgore | 2:1e8031dab116 | 28 | mac[3] = 0x0f; mac[4] = 0x0e; mac[5] = 0x07; // 90:a2:da:0f:0e:63 |
ganeshgore | 1:421fd0a7b5d7 | 29 | |
ganeshgore | 1:421fd0a7b5d7 | 30 | |
bangbh | 0:412f9c1172b7 | 31 | |
bangbh | 0:412f9c1172b7 | 32 | //Set serial port baudrate speed: 115200 |
bangbh | 0:412f9c1172b7 | 33 | pc.baud(115200); |
ganeshgore | 1:421fd0a7b5d7 | 34 | pc.printf("Started\r\n"); |
ganeshgore | 1:421fd0a7b5d7 | 35 | |
ganeshgore | 1:421fd0a7b5d7 | 36 | //mbed_mac_address((char *)MAC_Addr); //Use mbed mac addres |
ganeshgore | 1:421fd0a7b5d7 | 37 | |
bangbh | 0:412f9c1172b7 | 38 | pc.printf("Start\r\n"); |
bangbh | 0:412f9c1172b7 | 39 | |
bangbh | 0:412f9c1172b7 | 40 | char buffer[256]; |
ganeshgore | 1:421fd0a7b5d7 | 41 | |
ganeshgore | 1:421fd0a7b5d7 | 42 | while(1) { |
ganeshgore | 1:421fd0a7b5d7 | 43 | #if USE_DHCP |
ganeshgore | 1:421fd0a7b5d7 | 44 | int ret = ethernet.init(mac); |
ganeshgore | 1:421fd0a7b5d7 | 45 | #else |
bangbh | 0:412f9c1172b7 | 46 | int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway); |
ganeshgore | 1:421fd0a7b5d7 | 47 | #endif |
ganeshgore | 1:421fd0a7b5d7 | 48 | |
bangbh | 0:412f9c1172b7 | 49 | if (!ret) { |
bangbh | 0:412f9c1172b7 | 50 | pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress()); |
bangbh | 0:412f9c1172b7 | 51 | ret = ethernet.connect(); |
bangbh | 0:412f9c1172b7 | 52 | if (!ret) { |
bangbh | 0:412f9c1172b7 | 53 | pc.printf("IP: %s, MASK: %s, GW: %s\r\n", |
bangbh | 0:412f9c1172b7 | 54 | ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway()); |
bangbh | 0:412f9c1172b7 | 55 | } else { |
bangbh | 0:412f9c1172b7 | 56 | pc.printf("Error ethernet.connect() - ret = %d\r\n", ret); |
bangbh | 0:412f9c1172b7 | 57 | exit(0); |
bangbh | 0:412f9c1172b7 | 58 | } |
bangbh | 0:412f9c1172b7 | 59 | } else { |
bangbh | 0:412f9c1172b7 | 60 | pc.printf("Error ethernet.init() - ret = %d\r\n", ret); |
bangbh | 0:412f9c1172b7 | 61 | exit(0); |
bangbh | 0:412f9c1172b7 | 62 | } |
ganeshgore | 2:1e8031dab116 | 63 | while(1); |
bangbh | 0:412f9c1172b7 | 64 | TCPSocketServer server; |
bangbh | 0:412f9c1172b7 | 65 | server.bind(LOOPBACKPORT); |
bangbh | 0:412f9c1172b7 | 66 | server.listen(); |
ganeshgore | 1:421fd0a7b5d7 | 67 | |
bangbh | 0:412f9c1172b7 | 68 | while (1) { |
bangbh | 0:412f9c1172b7 | 69 | pc.printf("\nWait for new connection...\r\n"); |
bangbh | 0:412f9c1172b7 | 70 | TCPSocketConnection client; |
bangbh | 0:412f9c1172b7 | 71 | server.accept(client); |
bangbh | 0:412f9c1172b7 | 72 | client.set_blocking(false, 0); // Timeout=0. |
bangbh | 0:412f9c1172b7 | 73 | pc.printf("Connection from: %s\r\n", client.get_address()); |
bangbh | 0:412f9c1172b7 | 74 | while (client.is_connected() == true) { |
bangbh | 0:412f9c1172b7 | 75 | int n = client.receive(buffer, sizeof(buffer)); |
bangbh | 0:412f9c1172b7 | 76 | if(n > 0) |
bangbh | 0:412f9c1172b7 | 77 | client.send_all(buffer, n); |
bangbh | 0:412f9c1172b7 | 78 | if(client.is_fin_received()) |
bangbh | 0:412f9c1172b7 | 79 | client.close(); |
bangbh | 0:412f9c1172b7 | 80 | } |
bangbh | 0:412f9c1172b7 | 81 | pc.printf("Disconnected.\r\n"); |
bangbh | 0:412f9c1172b7 | 82 | } |
bangbh | 0:412f9c1172b7 | 83 | } |
bangbh | 0:412f9c1172b7 | 84 | } |