Go Down

Topic: wishield webserver et webclient (Read 914 times) previous topic - next topic

infobarquee

bonjour à tous,
me revoilà enfin après une surcharge de boulot, je me penche enfin sur le joujou offert pour noel. merci encore ;)

voila le projet
je désire récupérer des données sur mes servers contenues dans un fichier txt.
jusque là, pas de problème pour afficher dans la console, je suis parti du script simpleclient du wishield.

là ou ca se corse, c'est pour récupérer les valeurs de certaines variables et les afficher sur ma page web.

mais avant d'aller plus loin, la question est:
est ce possible?


infobarquee

voici le code
Code: [Select]
#include <WiServer.h>
#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2

int sensibilite = 0;
int i = 1;
int line ;
int nbr ;
// Wireless configuration parameters ----------------------------------------
unsigned char local_ip[] = {192,168,2,200}; // IP address of WiShield
unsigned char gateway_ip[] = {192,168,2,2}; // router or gateway IP address
unsigned char subnet_mask[] = {255,255,255,0}; // subnet mask for the local network
const prog_char ssid[] PROGMEM = {"infobarquee-maison"};


unsigned char security_type = 0; // 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2

// WPA/WPA2 passphrase
const prog_char security_passphrase[] PROGMEM = {"12345678"}; // max 64 characters

// WEP 128-bit keys
// sample HEX keys
prog_uchar wep_keys[] PROGMEM = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, // Key 0
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 1
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Key 2
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Key 3
};

// setup the wireless mode
// infrastructure - connect to AP
// adhoc - connect to another WiFi device
unsigned char wireless_mode = WIRELESS_MODE_INFRA;

unsigned char ssid_len;
unsigned char security_passphrase_len;
// End of wireless configuration parameters ----------------------------------------


// Function that prints data from the server
void printData(char* data, int len) {
 
  // Print the data returned by the server
  // Note that the data is not null-terminated, may be broken up into smaller packets, and
  // includes the HTTP header.
  while (len-- > 0) {
    Serial.print(*(data++));
  }
}


// IP Address for my ip server 
uint8 ip[] = {xx,xx,xx,xx};

// A request that gets the data for test
GETrequest getWeather(ip, 80, "yyyyy.fr", "/test.txt");


void setup() {


//initialize sendMyPage
  WiServer.init(sendMyPage);
 
  // Enable Serial output and ask WiServer to generate log messages (optional)
  Serial.begin(9600);
  WiServer.enableVerboseMode(true);

  // Have the processData function called when data is returned by the server
  getWeather.setReturnFunc(printData);
 
 
 
}
char *ar_strstr(const char *haystack, const char *needle)
int getNbr(char *line)
{


  nbr = 0;
  while (*line >= '0' && *line <= '9') {
    nbr *= 10;
    nbr += *line - '0';
    line++;
  }
  return (nbr);
}
int getConf(char *val)
{

char line[100];
  char i;

  i = 0;
   while ((line[i] > 0) {
      if (line[i] == '\n') {
        line[i] = '\0';
        i = 0;
        if (ar_strstr(line, val) && line[ar_strlen(val)] == '=') {

          return (getNbr(line + ar_strlen(val) + 1));
        }
        i++;
      }
        return 0;

}
   boolean sendMyPage(char* URL) {
    if (strcmp(URL, "/") == 0) {
      WiServer.print("<html>");
      WiServer.print("<h1>test</h1>");
      WiServer.print("</html>");
     
       return true;
    }
        return false;
  }




// Time (in millis) when the data should be retrieved
long updateTime = 0;

void loop(){

  // Check if it's time to get an update
  if (millis() >= updateTime) {
    getWeather.submit();   
    // Get another update one hour from now
    updateTime += 1000 * 60 * 60;
  }

 
  // Run WiServer
  WiServer.server_task();


  delay(10);
}


retour erreur

SimpleClient1.cpp:88: erreur: expected initializer before 'int'

Artouste




retour erreur

SimpleClient1.cpp:88: erreur: expected initializer before 'int'

bonjour
tu es sous quel IDE ?

intuitivement ça vient peut être du "probleme" du fichier apps-conf.h (dans la librarie wishield)
dont cette partie doit être modifiée selon l'utilisation de la wishield
-----
//#define APP_WEBSERVER
//#define APP_WEBCLIENT
//#define APP_SOCKAPP
//#define APP_UDPAPP
#define APP_WISERVER
----

infobarquee

salut Artouste,
j'y avais pensé aussi, mais la ligne est bien décommentée.

fdufnews

A l'endroit indiqué, il y a deux définitions de fonctions

Code: [Select]
char *ar_strstr(const char *haystack, const char *needle)
int getNbr(char *line)
{
.......


Je n'ai pas de temps d'approfondir, mais j'ai l'impression que tu as collé 2 fonctions à l'intérieur d'une autre.

Go Up