tangibleInterface.c 1.21 KB
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>

#include "serial.h"
#include "ethernet.h"
#include "w5100.h"
#include "socket.h"

#define MAC_SIZE	6
#define IPV4_SIZE	4

int main(void)
{
  uint8_t mac[MAC_SIZE] = {0xAD,0xBD,0xCD,0xDD,0xED,0xFD};
  uint8_t ip[IPV4_SIZE] = {172,26,145,205};
  uint8_t gateway[4] = {172,26,145,35};
  uint8_t mask[4] = {255,255,255,0};

  const char * answer = "I'm ok";
  
  char buf[16]; // Message à stocker.
  uint8_t addr[IPV4_SIZE]; // Adresse source du message reçu.
  uint16_t port; // Port source du message reçu.
  
  SOCKET sUDP;
  SOCKET sTCP;

  init_printf(); // On active la liaison série (9600 BD).
  ethernet_init(mac,ip,gateway,mask); // On assimile une adresse MAC et IP au shield + Indication de la passerelle et du masque de sous-réseau.
  if (!socket(sUDP,Sn_MR_UDP,2020,0))
    {
      return -1;
    }
    if (!socket(sTCP,Sn_MR_TCP,2020,0))
    {
      return -1;
    }
  while(1)
    {
      if(listen(sTCP)) //Repondre je vais bien à un client
	{
	  send(sTCP,(uint8 *)answer,sizeof(answer));
	}
      
      if (recvfrom(sUDP,buf,sizeof(buf),addr,&port) != -1) //Reception via UDP (infos de la sonde)
	{
	  
	}
    }
  close(sTCP);
  close(sUDP);
  return 0;
}