Commit bb11e508671cbd520d9373b8756fc7ba69cbcc06

Authored by pifou
1 parent df742988

tangible test

Showing 1 changed file with 31 additions and 11 deletions   Show diff stats
Tangible/tangibleInterface.c
... ... @@ -11,7 +11,8 @@
11 11  
12 12 #define MAC_SIZE 6
13 13 #define IPV4_SIZE 4
14   -
  14 +bool isComMem = false;
  15 +uint8 comMem[2]; //Commande en mémoire
15 16 SOCKET sUDP=0;
16 17 SOCKET sTCP=1;
17 18 uint8_t addr[IPV4_SIZE];
... ... @@ -20,22 +21,38 @@ bool sleep = true; //Etat de l'interface : true = mode sommeil / false = mode ev
20 21  
21 22 void request(uint8 rq [2])
22 23 {
23   - uint8 com = rq [0] && 0xE0;
24   - uint16 per = rq[0] && 0x1F;
  24 +
  25 + if (!isComMem) //Aucune commande en mémoire
  26 + {
  27 + isComMem = true;
  28 + comMem[0] = rq[0]; comMem[1] = rq [1];
  29 + }
  30 +
  31 + uint8 com = rq [0] && 0xE0; // récupération de la commande
  32 + uint16 per = rq[0] && 0x1F; // récupération du pourcentage
25 33 per = per << 8;
26 34 per += rq[1];
27   -
  35 + per = (100*per)/8192; //2^13 = 100 %
  36 +
28 37 switch(com)
29 38 {
  39 +
30 40 case 0:
31   - // ici renvoi 0b001 0000000000000 ou 0000000000001 si eveillé ou sommeil via TCP
  41 + printf("REQUEST STATUS");
32 42 break;
33 43  
34 44 case 2:
35 45 if (per == 0x0001)
36   - sleep = false;
  46 + {
  47 + sleep = false;
  48 + printf("MODE EVEILLE");
  49 + }
37 50 else if (per == 0x0000)
38   - sleep = true;
  51 + {
  52 + sleep = true;
  53 + printf("MODE SOMMEIL");
  54 + }
  55 + comMem[0] = rq[0]; comMem[1] = rq [1]; //save
39 56 break;
40 57  
41 58 case 3:
... ... @@ -63,6 +80,8 @@ int main(void)
63 80 uint8 buf[2];
64 81 uint16 datasize;
65 82  
  83 +
  84 + uint8 comtest[2] = {0b00000000,0b00000000}
66 85 init_printf();
67 86 ethernet_init(mac,ip,gateway,mask);
68 87 if (!socket(sUDP,Sn_MR_UDP,2020,0))
... ... @@ -76,10 +95,11 @@ int main(void)
76 95  
77 96 while(1)
78 97 {
79   - if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 3)
80   - {
81   - request(buf);
82   - }
  98 + /* if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 3) */
  99 + /* { */
  100 + /* request(comtest); */
  101 + /* } */
  102 + request(comtest);
83 103 }
84 104 close(sTCP);
85 105 close(sUDP);
... ...