Zoltan Hudak
/
TcpServer_ENC28J60
Simple TCP/IP Server using the UIPEthernet library for ENC28J60 Ethernet boards.
Diff: main.cpp
- Revision:
- 0:837203c8d865
- Child:
- 1:862d66d1ef8c
diff -r 000000000000 -r 837203c8d865 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Dec 05 08:29:20 2015 +0000 @@ -0,0 +1,72 @@ +/* + * Simple TcpServer using the UIPEthernet library for ENC28J60 Ethernet boards. + * + */ + +#include "mbed.h" +#include "UIPEthernet.h" +#include "UIPServer.h" +#include "UIPClient.h" + +Serial pc(USBTX, USBRX); + +#if defined(TARGET_LPC1768) +UIPEthernetClass UIPEthernet(p11, p12, p13, p8); // mosi, miso, sck, cs +#elif defined(TARGET_NUCLEO_F103RB) || defined(TARGET_NUCLEO_L152RE) || defined(TARGET_NUCLEO_F030R8) \ + || defined(TARGET_NUCLEO_F401RE) || defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_L053R8) \ + || defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F334R8) || defined(TARGET_NUCLEO_F072RB) \ + || defined(TARGET_NUCLEO_F091RC) || defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F070RB) \ + || defined(TARGET_KL25Z ) || defined(TARGET_KL46Z) || defined(TARGET_K64F) || defined(TARGET_KL05Z) \ + || defined(TARGET_K20D50M) || defined(TARGET_K22F) \ + || defined(TARGET_NRF51822) \ + || defined(TARGET_RZ_A1H) +UIPEthernetClass UIPEthernet(D11, D12, D13, D10); // mosi, miso, sck, cs +#endif + +// MAC number must be unique within the connected network. Modify as appropriate. +const uint8_t MY_MAC[6] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 }; +const uint16_t MY_PORT = 10001; +EthernetServer server = EthernetServer(MY_PORT); + +int main(void) +{ +//#define DHCP 1 // if you'd like to use static IP address comment out this line +#if defined(DHCP) + pc.printf("Searching for DHCP server..\r\n"); + if(UIPEthernet.begin(MY_MAC) != 1) { + pc.printf("No DHCP server found.\r\n"); + pc.printf("Exiting application.\r\n"); + return 0; + } + pc.printf("DHCP server found.\r\n"); +#else + // IP address must be unique and compatible with your network. + const IPAddress MY_IP(192, 168, 1, 33); // Change as appropriate. + UIPEthernet.begin(MY_MAC, MY_IP); +#endif + IPAddress localIP = UIPEthernet.localIP(); + pc.printf("Local IP = "); + for(uint8_t i = 0; i < 3; i++) + pc.printf("%d.", localIP[i]); + pc.printf("%d\r\n", localIP[3]); + server.begin(); + + while(1) { + size_t size; + + if (EthernetClient client = server.available()) { + pc.printf("Client connected.\r\n"); + pc.printf("Data received from client:\r\n"); + while((size = client.available()) > 0) { + uint8_t* msg = (uint8_t*)malloc(size); + size = client.read(msg, size); + for(int i = 0; i < size; i++) + pc.printf("0x%x ", msg[i]); + pc.printf("\r\n"); + free(msg); + } + client.stop(); + pc.printf("Client disconnected.\r\n"); + } + } +} \ No newline at end of file