Donc dans ce cas je doit utiliser RTSJ? cad pas de solution avec java seul
Donc dans ce cas je doit utiliser RTSJ? cad pas de solution avec java seul
Ça dépends, c'est quoi ta définition de 'temps réel'? Déjà, si tu as du réseau UDP dans le trajet, ce n'est plus du temps réel.
en fait dans mmon cas je veux faire supervision des valeurs de température en temp réel cad je doit afficher le temp exacte e la valeur de température a ce temp la; cad jedoit uutiliser leprotocole TCP? et je peux l faire ca en java sans utliser rtsj
C'est quoi ta définition de temps exact? Le temps exact, ça n'existe pas. Ta sonde elle envoie quoi comme données et à quelle fréquence? TCP et UDP ne permettent pas du temps réel puisque le protocole de transfert sous jacent utilisé en général (ethernet) est un protocole à temps de transmission non garanti: chacun parle sur le réseau et quand il y a des collisions, on recommence. C'est probabiliste.
Ma carte sans fils 802.11 envoie la valeur de température de la chambre via une communication sans fils vers mon pc chaque 2sec; j'ai utilisé le protocole UDP pour afficher les valeurs de température détecte donc j'ai fait la détection de valeurs de température en ligne. Maintenant je doit réaliser la détection des valeurs de température en temps réel et non pas en ligne. Donc pouvez vous SVP me donner une idée ce que je doit réaliser exactement
Relis la définition de temps réel, tu en est très très loin. T'as une mesure toutes les deux secondes, on s'en fout qu'il y aie une erreur de quelques millisecondes, ce n'est pas 5000 mesures par secondes avec un système qui varie rapidement que tu fais. Il faut plusieurs minutes à ton termomètre pour changer de température. A moins que tu foute le feux à la pièce. Le 802.11 peux mettre plusieurs minutes à transférer un paquet...
Desolé mais j'ai pas bien compris votre réponse (comme vous avez dis je suis trèssss loin de temps reel) ; Est ce que je doit changer le temps de transmission (2s) ou bien c impossible de realiser la détection en temps réel avec mon système; ou bien c très difficile à le rélaliser?
Tout est à changer pour un système temps réel: la JVM l'OS la transmission et la sonde. Mais je ne vois pas du tout comment tu pourrais avoir besoin de faire du temps réel là dessus. Donc ma question reste "c'est quoi pour toi temps réel? et temps exact?"
En fait mon but final dans mon projet est la surveillance (supervision) en temps réel de la température ambiante
Ouiiii, et ça veux dire quoi pour toi "temps réel"? A la seconde près? A la millisecone près? A la nano-seconde près?
A la seconde près. Donc dans ce cas est c que je dot changer le protocole et utiliser RTSJ?
Non, pour ce genre de besoin une simple boucle en java et un appel à system.curentTimeMillis est largement suffisant.
Merci pour votre réponse. Donc en utilisant JAva, et system.curentTimeMillis ma supervision sera en temps réel? Je peux utiliser le protocole UDP dans ce cas?
D'après ce que j'ai lu sur le temps réel il faut diviser le programme en plusieurs taches et après ajouter un algorithme d'ordonnancement bien définie. Dans mon cas les taches seront :
- Acquisition des données(température et temps);
- Affichage de donnes
- Tester les valeurs du température
de plus system.curentTimeMillis mesure le temps de simulation d'une tache donc je vois pas la relation entre system.curentTimeMillis et surveillance en temps réel ou bien c"est parce qu'elle donne le temps exacte de simulation de chaque tache. de plus dans ce cas on a pas besoin de l'algorithme d'ordonnancement et de la division du programme en de sous taches. juste on a besoin de calculer le temps de simulation de chaque étape.
Non ce ne sera pas 'temps reel'. Ce que j'essaie de te faire comprendre c'est que ton besoin de mesurer la température d'une pièce toute les secondes par une sonde wifi n'as rien a voir avec ce que l'on appelle le temps réel. Maintenant si tu veux absolument faire du temps réel tu peux tout revoir. Faut un os spécifique (et pas dans une machine virtuelle) une jvm spécifique un capteur relié directement à la machine pour éviter les latences réseau etc...
cad pour faire la surveillance en temp réel je doit changer le système d'exploitation; je doit modifier mon émetteur pour qu'il m'envoi aussi le temps avec la température associé; changer le protocole de communication par quel protocole??et même changer la langage de programmation ; je peux pas faire ca avec C ou C++ sans changer le système d'exploitation
Ton système d'exploitation est responsable de l'ordonnancement des processus. Si il ne supporte pas certains fonction garantissant du temps de fonctionnement à un processus, le processus ne sait pas de combien il dispose et ne peux donc rien planifier.
Par un protocole avec des temps de transmission garantis. Si les temps de transmission sont aléatoire, on ne peux plus parler de temps réel.
Comme je te l'ai déjà dit, ce que tu veux faire ne nécessite absolument pas du temps réel, mais tu insiste pour le faire....
cad je peux avoir avec system.curentTimeMillis le temps pour chaque tache donc dans mon system par exemple j'ai trois taches
réception chaque 10s par exemple (e valeur c'est pa mon capteur qu'il envoi
affichage de température et de temps exacte (calcul d temp avec system.curentTimeMillis)
enfin test d valeur d température , j'ai pas besoin de calcul d temps ici;
Rq: temps exacte cad temps juste pour la valeur de température
Avec currenttimemillis tu auras l'heure au moment du traitement de la donnée par ton code.
SVP est ce que ce possible d'afficher la valeur de RSSI pour chaque trame récu (valeur de température récu)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager