login et password avec Telnet....

barbudor:
Sauf que faut pas compter sur l'Arduino pour faire du crypté.
Donc prendre SSH comme serveur telnet ca n'apporte pas grand chose, à part être à la mode ;).

j'aurais appris un truc en plus aujourd'hui sur le nono. :blush:

Et les commande "habituelles" ne fonctionnent pas toutes, c'est une distrib light qui utilise "opkg" pour les install, il n'y a pas de compilateur c .... autrement l'arborescence est différente de ce que je trouve pour les autres distrib... alors il faut à chaque fois que je sorte le piolet et le casque de spéléo :grin:

basé sur une distri openwrt
tu trouveras pas mal de packages ici
http://downloads.openwrt.org/kamikaze/8.09/rdc/packages/

Est ce que tu sais quel package je dois installer pour avoir mon mes heures au format français lorsque je fais #date ? :grin:

Merci pour ce lien :smiley:

A part ça, je ne comprend toujours pas pourquoi cela se "gèle" après deux passage de netstat (maintenant c'est deux, y a du progrès.... XD )

Jean-François:
Est ce que tu sais quel package je dois installer pour avoir mon mes heures au format français lorsque je fais #date ? :grin:

Merci pour ce lien :smiley:

A part ça, je ne comprend toujours pas pourquoi cela se "gèle" après deux passage de netstat (maintenant c'est deux, y a du progrès.... XD )

cherche le fichier locale, mais sans grande conviction et mets ceci fr_FR.UTF-8
pour le syslog, locate syslog devrait te renvoyer son chemin

Pour les locales, c'est déjà fait, mais j'ai toujours les jours et les mois en anglais.... je ferais autrement pour les convertir en français avant de les envoyer à l'arduino... ou après XD

Merci pour locate :grin:

locate syslog

-sh: locate: not found

regardes dans
/tmp/syslog.log peut être

sinon ouvre un autre terminal, tapes
tail -f /var/log/erreur.log

jetes un oeil la dessus, pas tout lu (la flemme :slight_smile: )

XD

tail -f /var/log/erreur.log

tail: can't open '/var/log/erreur.log': No such file or directory
tail: no files

Par contre, j'ai trouvé /var/log/Xorg.0.log

Il me semble que la dernière passe, la variable "Etat" reste sur WAIT_INVIT et donc se bloque à :

  case WAIT_INVIT:
    if (client.available()) {
      char c = client.read();
      Serial.print(c);
      stringOne+=c;
    }
    if (!client.connected()) {
      Serial.println();
      Serial.println("déconnecté....");
      client.stop();
      Etat = WAIT_CONNECT;
    }
    // ... ici le code pour attendre l'invit de commande"
    if(stringOne.endsWith("# ")){    
      Etat = RUNNING; 
    }
    break;

Et je n'arrive pas à déterminer pour quelle raison cette variable devient .... invariable :grin:

XD

En rajoutant :

if (millis() - lastAttemptTime > requestInterval) {
  Etat = RUNNING;
 lastAttemptTime = millis();
}

En dehors du Switch Case, avec un intervalle de 1500, ça repart après le blocage, c'est donc bien cette variable qui reste à WAIT_INVIT

J'ai pas compris pourquoi, mais la suite est dans ce sens puisque je veux faire mes commandes à intervalles régulier pour remplacer les CronJobs.... donc maintenant il faut que je temporise depuis le début XD

Bon finalement.... infobarquee avait partiellement raison, c'était bien un problème de tempo, mais pas sur la partie login XD

J'ai déplacé ma fonction millis() ici :

  case WAIT_INVIT:
    if (client.available()) {
      char c = client.read();
      Serial.print(c);
      stringOne+=c;
    }
    if (!client.connected()) {
      Serial.println();
      Serial.println("déconnecté....");
      client.stop();
      Etat = WAIT_CONNECT;
    }
    if (millis() - lastAttemptTime > requestInterval) {      // ici
      Etat = RUNNING;
      lastAttemptTime = millis();
      // ... ici le code pour attendre l'invit de commande"
      if(stringOne.endsWith("# ")){    
        Etat = RUNNING; 
      }
    }
    break;

Suivant la longueur de ce que me renvoi la commande, ça marche à tout les coups, par exemple, #date me renvoi une ligne, avec un intervalle de 50Ms ça fonctionne du tonnerre.
Pour #netsat qui me renvoi environ 50 lignes, il faut aller à 5000Ms pour pas avoir de soucis.
La fonction #ls qui me renvoi 8 lignes va bien avec 800Ms.

Ce qui a d'amusant, (quand je dis que j'aime pas la fonction delay() ) c'est que j'ai fait des essai au même endroit avec des delay() de 3 secondes et que cela ne changeait rien au problème.
Je pense que simplement le buffer est saturé et qu'en utilisant delay() on reprend au même taux de saturation..... ou un truc du genre XD

content de t'avoir un peu aidé alors.
mais une autre solution me vient à l'esprit, a tester quand même
en mettant une boucle while
style
while caractere !=# on boucle jusqu'à ce que le # s'affiche
lorsque qu'il s'affiche, caractere="" et on vide le buffer
comme ca, plus de tempo.

par contre essaye en virant l'espace après le #, car ca oblige a avoir un caractère en plus alors que ca renvoie simplement un #

if(stringOne.endsWith("# ")){

J'ai déjà essayer au tout début et ça marche pô.... XD

Pour l'espace après le #, il fait partie intégrante de la string, alors je n'y touche pas :grin:

j'aurais essayé snifff.
si je vois un autre truc...

Volontiers si tu me trouves une solution pour mes dates XD

Actuellement, j'envoie à une fréquence de 1 par seconde une commande qui me mets à jour le fichier avec mes échéances pour mes tâches, c'est déjà 60 fois plus qu'avec le CronJob XD

Je récupère ensuite dans la foulée avec un #cat à la même fréquence le contenu du fichier..... reste plus qu'à trier et traiter XD

donc si je comprends bien, toutes les secondes tu enregistre dans un fichier quelque chose du genre
date--------tache-------echeance

et chaque ligne est mise a jour au fur et à mesure, c'est bien ca?
tu peux donner une ou deux lignes de ton fichier généré?

1358614200
1359010800
1359012000

3
1358805121

la prochaine tâche est Thu Jan 24 08:00:00 UTC 2013

Les trois premières lignes sont les timestamps des tâches à effectuer, même si elles sont déjà passées (elles restent avec le status "passed" tant que l'on ne les supprime pas).
Le trois est le nombre de tâches, en dessous le timestamp de la génération du fichier..... la suite se passe d'explication XD

Les seules lignes importantes sont les deux dernières, les autres ne sont là que pour m'aider à faire ce bash, elles seront probablement supprimées par la suite.

La dernière ligne est générée comme ça :

echo "la prochaine tâche est $(date -d @"$(($tmsp+3600))")"

$ date -d @1193144433 "+%Y-%m-%d %T"
2007-10-23 15:00:33
essaye ceci

prochain = $tmsp+3600;
prochain = date -d @$prochain "+%d-%m-%Y %T"; //a tester en premier
echo "le prochain enregistrement est pour le $prochain " //a tester en premier
echo "le prochain enregistrement est pour le $(date -d @$prochain "+%d-%m-%Y %T")" //a tester en second

ca devrait te donner
le prochain enregistrement est pour le 22-01-2013 09:00:00

Je ne sais pas si j'ai bien compris ton projet, mais pour l'envoie d'un datetime vers l'Arduino via une connexion Ethernet, j'aurai plutôt choisi le client côté machine Linux et le serveur côté Arduino. Le protocole UDP fonctionne bien sur un LAN même si il n'y a pas de vérification de la bonne réception de la trame UDP.

Côté client, après le cronjob, envoie du prochain datetime.
Côté serveur, écoute sur le port choisi.

Pas de Telnet, pas de login, password.

Tu sembles vouloir allumer ta machine Linux avec un magic packet, qu' elle sera la fréquence d'allumage de ta machine Linux?
Si c'est plusieurs fois par jour, tu risques de faire vieillir prématurément les composants de cette machine.

Justement, pas de magic packet.... imagine que ma femme éteigne l'ordi en appuyant sur le bouton...... tu peux envoyer tout les magic packet que tu veux, l'ordi y fait comme si il entendait rien :grin:

Pour le reste, c'est pas envisageable :grin: