Go Down

Topic: error: too many arguments to function 'void sendNTPpacket()' (Read 149 times) previous topic - next topic

Etau-Limeur

Salut :)

En actualisant ma version d'IDE j'ai écraser mes lib perso.( Quel.. c'est ma faute, c'est ma très grande faute...)

Je suis en train de les reconstituées, but i have a problem

Je récupère et recrée l'heure (ws5100, ds3231)Mon fichier ino fonctionne très bien

Mais quand je reconstitue le .cpp , j'ai :

Quote
error: too many arguments to function 'void sendNTPpacket()'
Voilà l'appel de la fonction

Code: [Select]
unsigned long Heure_Internet() {
  unsigned int depl;
  const char* timeServer[] = {"gi.pool.ntp.org", "lv.pool.ntp.org", "si.pool.ntp.org", "ee.pool.ntp.org", "bg.pool.ntp.org", "hu.pool.ntp.org", "sk.pool.ntp.org", "is.pool.ntp.org", "cz.pool.ntp.org"} ; // https://www.ntppool.org/fr/use.html
  const size_t NB_ELEMENTS = sizeof(timeServer) / sizeof(timeServer[0]);
  const char* fantome[NB_ELEMENTS] ;// Qui va servir pour le choix alea

  for ( depl = 0; depl < NB_ELEMENTS; depl++) {//Serial.println(depl);
    fantome[depl] = timeServer[depl]; //Serial.print(fantome[depl]);
  }



  int tail_varia = NB_ELEMENTS - 1;
  for (int tentativ = 0; tentativ < 5; tentativ++) {

    randomSeed(analogRead(7));//initialise la séquence aléatoire

    int alea = random(tail_varia + 1);
    // Serial.println(fantome[alea]);
    sendNTPpacket(fantome[alea]); // send an NTP packet to a time server

    fantome[alea] = "";



la fonction

Code: [Select]
// send an NTP request to the time server at the given address
void sendNTPpacket(const char * address) {
  // set all bytes in the buffer to 0
  memset(packetBuffer, 0, NTP_PACKET_SIZE);
  // Initialize values needed to form NTP request
  // (see URL above for details on the packets)
  packetBuffer[0] = 0b11100011;   // LI, Version, Mode
  packetBuffer[1] = 0;     // Stratum, or type of clock
  packetBuffer[2] = 6;     // Polling Interval
  packetBuffer[3] = 0xEC;  // Peer Clock Precision
  // 8 bytes of zero for Root Delay & Root Dispersion
  packetBuffer[12]  = 49;
  packetBuffer[13]  = 0x4E;
  packetBuffer[14]  = 49;
  packetBuffer[15]  = 52;

  // all NTP fields have been given values, now
  // you can send a packet requesting a timestamp:
  Udp.beginPacket(address, 123); // NTP requests are to port 123
  Udp.write(packetBuffer, NTP_PACKET_SIZE);
  Udp.endPacket();
  // Serial.println("Paquet parti");
}


Le .h
Code: [Select]
#ifndef Heure_Internet_h
#define Heure_Internet_h
 
 
//#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <Wire.h>
#include <ds3231.h>

struct ts t;

const int NTP_PACKET_SIZE = 48; // NTP time stamp is in the first 48 bytes of the message

byte packetBuffer[NTP_PACKET_SIZE]; //buffer to hold incoming and outgoing packets


volatile int gestionErreur;




//  UDP instance
extern struct EthernetUDP Udp;


int Connect_Serveur();
unsigned long Heure_Internet();
unsigned long long_mois();
bool BISSEXT();
void gestionDutemps();
void sendNTPpacket() ;
 #endif


Merci d'avance

Etau-Limeur

Je m'auto répond .h

void sendNTPpacket(const char * address) ; ?

fdufnews

En actualisant ma version d'IDE j'ai écraser mes lib perso.( Quel.. c'est ma faute, c'est ma très grande faute...)
Les librairies ajoutées doivent se trouver dans le répertoire <sketchbook>/libraries/.
<sketchbook> étant le répertoire que tu as configuré comme répertoire de travail dans les préférences de l'IDE. Et ainsi elles ne seront pas effacées par une réinstallation de l'IDE.

Il y a des trucs un peu choquants dans ton code
Code: [Select]
const char* fantome[NB_ELEMENTS] ;// Qui va servir pour le choix alea

  for ( depl = 0; depl < NB_ELEMENTS; depl++) {//Serial.println(depl);
    fantome[depl] = timeServer[depl]; //Serial.print(fantome[depl]);
  }

tu déclares un tableau de constantes et tu le modifies la ligne en-dessous.

Etau-Limeur

Merci pour les réponses... le const, bizarre que ce soit passé

Go Up