temp

Dependencies:   UIPEthernet mbed

Fork of TcpServer_ENC28J60 by Zoltan Hudak

Committer:
dmitry_pavlov
Date:
Tue Mar 07 10:20:43 2017 +0000
Revision:
2:a47c2bd81242
Parent:
1:862d66d1ef8c
tese;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hudakz 0:837203c8d865 1 /*
hudakz 0:837203c8d865 2 * Simple TcpServer using the UIPEthernet library for ENC28J60 Ethernet boards.
hudakz 0:837203c8d865 3 *
hudakz 0:837203c8d865 4 */
hudakz 0:837203c8d865 5
hudakz 0:837203c8d865 6 #include "mbed.h"
hudakz 0:837203c8d865 7 #include "UIPEthernet.h"
hudakz 0:837203c8d865 8 #include "UIPServer.h"
hudakz 0:837203c8d865 9 #include "UIPClient.h"
hudakz 0:837203c8d865 10
hudakz 0:837203c8d865 11 Serial pc(USBTX, USBRX);
hudakz 0:837203c8d865 12
hudakz 0:837203c8d865 13 #if defined(TARGET_LPC1768)
hudakz 0:837203c8d865 14 UIPEthernetClass UIPEthernet(p11, p12, p13, p8); // mosi, miso, sck, cs
hudakz 0:837203c8d865 15 #elif defined(TARGET_NUCLEO_F103RB) || defined(TARGET_NUCLEO_L152RE) || defined(TARGET_NUCLEO_F030R8) \
hudakz 0:837203c8d865 16 || defined(TARGET_NUCLEO_F401RE) || defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_L053R8) \
hudakz 0:837203c8d865 17 || defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F334R8) || defined(TARGET_NUCLEO_F072RB) \
hudakz 0:837203c8d865 18 || defined(TARGET_NUCLEO_F091RC) || defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F070RB) \
hudakz 0:837203c8d865 19 || defined(TARGET_KL25Z ) || defined(TARGET_KL46Z) || defined(TARGET_K64F) || defined(TARGET_KL05Z) \
hudakz 0:837203c8d865 20 || defined(TARGET_K20D50M) || defined(TARGET_K22F) \
hudakz 0:837203c8d865 21 || defined(TARGET_NRF51822) \
hudakz 0:837203c8d865 22 || defined(TARGET_RZ_A1H)
hudakz 0:837203c8d865 23 UIPEthernetClass UIPEthernet(D11, D12, D13, D10); // mosi, miso, sck, cs
hudakz 0:837203c8d865 24 #endif
hudakz 0:837203c8d865 25
hudakz 0:837203c8d865 26 // MAC number must be unique within the connected network. Modify as appropriate.
hudakz 0:837203c8d865 27 const uint8_t MY_MAC[6] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 };
hudakz 0:837203c8d865 28 const uint16_t MY_PORT = 10001;
hudakz 0:837203c8d865 29 EthernetServer server = EthernetServer(MY_PORT);
hudakz 0:837203c8d865 30
hudakz 0:837203c8d865 31 int main(void)
hudakz 0:837203c8d865 32 {
hudakz 0:837203c8d865 33 //#define DHCP 1 // if you'd like to use static IP address comment out this line
hudakz 0:837203c8d865 34 #if defined(DHCP)
hudakz 0:837203c8d865 35 pc.printf("Searching for DHCP server..\r\n");
hudakz 0:837203c8d865 36 if(UIPEthernet.begin(MY_MAC) != 1) {
hudakz 0:837203c8d865 37 pc.printf("No DHCP server found.\r\n");
hudakz 0:837203c8d865 38 pc.printf("Exiting application.\r\n");
hudakz 0:837203c8d865 39 return 0;
hudakz 0:837203c8d865 40 }
hudakz 0:837203c8d865 41 pc.printf("DHCP server found.\r\n");
hudakz 0:837203c8d865 42 #else
hudakz 0:837203c8d865 43 // IP address must be unique and compatible with your network.
dmitry_pavlov 2:a47c2bd81242 44 const IPAddress MY_IP(192, 168, 0, 205); // Change as appropriate.
hudakz 0:837203c8d865 45 UIPEthernet.begin(MY_MAC, MY_IP);
hudakz 0:837203c8d865 46 #endif
hudakz 0:837203c8d865 47 IPAddress localIP = UIPEthernet.localIP();
hudakz 0:837203c8d865 48 pc.printf("Local IP = ");
hudakz 0:837203c8d865 49 for(uint8_t i = 0; i < 3; i++)
hudakz 0:837203c8d865 50 pc.printf("%d.", localIP[i]);
hudakz 0:837203c8d865 51 pc.printf("%d\r\n", localIP[3]);
hudakz 0:837203c8d865 52 server.begin();
hudakz 0:837203c8d865 53
hudakz 0:837203c8d865 54 while(1) {
hudakz 0:837203c8d865 55 size_t size;
hudakz 0:837203c8d865 56
hudakz 0:837203c8d865 57 if (EthernetClient client = server.available()) {
hudakz 0:837203c8d865 58 pc.printf("Client connected.\r\n");
hudakz 0:837203c8d865 59 pc.printf("Data received from client:\r\n");
hudakz 0:837203c8d865 60 while((size = client.available()) > 0) {
hudakz 0:837203c8d865 61 uint8_t* msg = (uint8_t*)malloc(size);
hudakz 0:837203c8d865 62 size = client.read(msg, size);
hudakz 0:837203c8d865 63 for(int i = 0; i < size; i++)
hudakz 0:837203c8d865 64 pc.printf("0x%x ", msg[i]);
hudakz 0:837203c8d865 65 pc.printf("\r\n");
hudakz 0:837203c8d865 66 free(msg);
hudakz 1:862d66d1ef8c 67 char* acknowledge = "Data received OK";
hudakz 1:862d66d1ef8c 68 client.write((uint8_t*)acknowledge, strlen(acknowledge));
hudakz 1:862d66d1ef8c 69 pc.printf(acknowledge);
hudakz 0:837203c8d865 70 }
hudakz 0:837203c8d865 71 client.stop();
hudakz 0:837203c8d865 72 pc.printf("Client disconnected.\r\n");
hudakz 0:837203c8d865 73 }
hudakz 0:837203c8d865 74 }
hudakz 0:837203c8d865 75 }