Peut on faire une boucle infini dans un sous vi ?

Bonjour, j'ai créé un sous-vis (joint à ce message) qui simule une température en continu (boucle infini) et j'aimerais pouvoir avoir le signal de ma température lors de l'utilisation de mon sous-vi. Mais quand je l'utilise, je n'obtiens rien à la sortie de mon sous vi(le programme appelant est joint aussi). Pourquoi et comment puis je faire ? Merci de votre réponse
Attachments:
Sous_Vis_Simul_Température.vi ‏24 KB
Utilisation_du_sous_vis_température.vi ‏21 KB

Ben , c'est normal !
La valeur de la température ne peut être renvoyée au vi principal que lorsque l'exécution du sous-vi est terminée. Si vous ouvrez la face avant du sous-vi, vous verrez que la température est correctement simulée. Mais bien sûr, rien ne sort de là, puisque la boucle tourne en permanence.
Il faut organiser le programme de manière différente, par exemple en enlevant la boucle du sous-vi, pour la placer dans le vi principal. Chaque appel au sous-vi renverra la valeur de la température.
On peut aussi faire appel à une variable globale, mais ça vous posera d'autres difficultés. En effet, il n'est pas recommandable d'avoir un sous-vi qui tourne avec une boucle infinie. Comment sortir de là ? Avec un arrêt sauvage ? Mauvaise idée...
Est-ce cla
ir ?
N'hésitez pas à demander plus d'aide si nécessaire...
Chilly Charly    (aka CC)
         E-List Master - Kudos glutton - Press the yellow button on the left...        

Similar Messages

  • Arrêter une boucle FOR dans une boucle While

    Bonjour à tous, 
    J'ai une boucle while me permettant de faire une acquisition de température et en même temps, exécuter des commandes en fonction des sections.. 
    Néanmoins une fois toutes mes sections exécutées à partir de mon fichier ini, l'execution recommence. 
    Ce que je ne souhaite pas.. 
    Auriez-vous une solution ?
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Mode _Auto_Cluster.vi ‏124 KB

    TiTou a écrit : Tu comptes finir un jour ce blog post?
    Je ne sais pas... j'ai commencé en LV2010, et en 2012 des "choses" ont été modifiées par le "process" NI qui gére les templates. Le principe de départ reste le même, mais avec quelques modification sur le specpage, et surtout le postcopy. Je travaille parfois, à mes heures perdues, tardivement dessus. Mais je voudrai faire beaucoup plus via le gestionnaire custom, donc il y a du travail, hors j'ai pas beaucoup d'heures perdues!!!
    TiTou a écrit : Vous avez des templates de projets personnalisés chez Mesulog?
    oui nous avons, 2 modèles de projet, réalisés suivant
    Partie 1/3 : Créer des modèles de projet personnalisés avec le gestionnaire de projet LabVIEW - Pour...
    et distribué aujourd'hui suivant le gestionnaire "standard" de NI
    Partie 2/3 : Distribuer des modèles de projet personnalisés avec le gestionnaire de projet LabVIEW -...
    il reste donc "quelques opérations manuels", surtout concernant le build, et du renommage de vi, comme le main et fichier ini.
    TiTou a écrit : On a un framework chez QMT et j'aimerai le distribuer sous forme de package VIPM et pour ça j'aimerai d'abord l'intégrer au templates gérés par LabVIEW.
    J'avais proposé pour les rencontres LUGE, users group de la région, de discuter de cela. Mais pas beaucoup de retour. Les personnes étaient plus intéressées par une présentation sur les techniques de programmation LabVIEW que par les projets...
    Si cela intéresse d'autres personnes...
    Sinon nous pourrions réflechir à une journée technique MESULOG - SAPHIR - QUALIMATEST...
    @+
    Luc Desruelle | Voir mon profil | LabVIEW Code & blog
    Co-auteur livre LabVIEW : Programmation et applications
    CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
    CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

  • Peut-on faire une mise à jour d'un logiciel windows à mac ?

    Bonjour,
    j'ai acheté il y a 1-2 ans le coffret Adobe Photoshop Element 7 et Adobe Premiere Element 7.
    Je n'ai jamais vraiment pu utiliser le logiciel Premiere Element car mon ordinateur ne supportait pas le logiciel (windows). Puis le photoshop plante un peu.
    Je me suis acheté un mac book pro et je voudrais savoir si on pouvait acheter la mise à jour du logiciel (version 9) mais pour mac au lieu de pour windows ?
    Merci d'avance !

    Salut
    La version Mac est tout a fait different - ça marche avec l'organisateur pour la premier fois - Cela n'existait pas dans PSE7. Vous profiterez en achetant PSE9/PRE9 ensemble.
    Si vous achetez le produit en boîte, vous obtiendrez alors les disques d'installation pour Mac et Windows. Deux installations sont autorisées.
    On peut installer le programme sur votre Mac et Windows sur un ordinateur portable.

  • Intégrer une fonction Pause dans un Sous vi

    Bonjour à tous, 
    comme le titre l'indique, je dois, intégrer une fonction automatique et manuelle dans mon programme Labview. Le problème que je rencontre se situe dans la partie manuelle de mon programme.
    En effet, celle-ci doit permettre de réaliser une pause dans mon programme qui sert à générer une consigne de fréquence et d'amplitude variable dans le temps.
    La fonction pause doit  bloquer mon système actuel, c'est à dire stabiliser ma fréquence et mon amplitude mais continuer à envoyer ces même valeurs de manière à ce que mon système ne soit pas à l'arrêt mais juste en fonctionnement sur la même fréquence et la même amplitude qu'au moment ou j'ai appuyé sur le bouton pause !
    Une fois la pause désactivée, mon système repartira à partir des points auxquels nous nous sommes arretez pour continuer un cycle habituel.
    cordialement
    Pièces jointes :
    vib_generate sweep spectrum_ALLEZ RETOUR.vi ‏25 KB
    vib_find ref point.vi ‏12 KB
    vib_log ramp pattern.vi ‏15 KB

    Salut,
    Quelle est la boucle que tu cherches à mettre en pause en fait? c'est pas du tout clair ton histoire... (encore )
    En principe, pour ce faire, il faut que tu désactives l'indexation auto de ton tableau en entrée et que tu coup tu pilotes toi même l'indice du tableau à lire. En fonction de la pause, tu lit l'indice suivant ou le même à l'étape suivante.
    Illustré:
    PS: les messages privés ne sont pas faits pour ça, merci d'éviter de me solliciter par cette voie
    Francis M | Voir mon profil
    Certified LabVIEW Developer

  • Stopper plusieurs boucle while dans une structure évènement

    Bonjour.
    Je gère actuellement l'acquisition de données sous LabVIEW et ai mis en place une structure évènementielle.
    Mon programme possède 6 fonctionnalités principales correspondant à 6 boutons :
    - paramètres de sécurité
    - étalonnage des capteurs
    - paramètres de l'essai
    - quitter le programme
    - démarrer l'essai
    - arrêt de l'essai
    Jusqu'à présent, les 5 premières fonctionnalités s'exécutent à merveille.
    Le problème réside dans l'interruption du code (sans le quitter attention !!) lors de l'appui du bouton "arreter essai".
    Lors de l'appui du bouton démarrer, 5 boucles while s'exécutent simultanément (soit dans l'évènement "Demarrer Essais : value change").
    J'ai tenté de relier chaque condition d'arrêt de ces boucles à la variable locale "Arreter Essais" (cf. ex ici http://forums.ni.com/t5/Discussions-de-produit-de-NI/Quitter-une-boucle-While-dans-une-structure-Eve... post n°7/9).
    Le programme semble alors bien s'interrompre... mais repart de plus belle sans que je ne sache pourquoi :/
    Autre test : relier les conditions d'arrêt à une variable globale prenant la valeur vraie dans l'évènement "Arreter essais : value change", là encore échec cuisant.
    Je vous joint une imprécran d'une des 5 boucles while en question, afin d'illustrer peut-être de meilleure manière mon problème.
    Si vous avez une piste de résolution du problème, n'hésitez surtout pas.
    Pour finir, je travaille sous LabVIEW 8.6.1
    Merci d'avance.
    Arnaud
    Attachments:
    Boucle WHILE d'affichage sur le graphe.png ‏29 KB

    Duplicate
    Flo
    Open Diagram First

  • Je cherche a faire une incrémentation de frequence

    bonjour,
    je suis débutant en labview6. Donc dans le cadre de mon stage, je dois piloter un générateur de fonction et un oscilloscope via un port GPIB. pour le générateur j'ai trouvé les drivers mais pas pour l'oscilloscope.
    bref. j'essaye de faire une boucle qui me permette d'incrémenter une frequence initiale a chaque tour. mais j'y arrive pas. si quelqu'un peut m'aider....
    merci
    cordialement jeanluc

    Bonjour,
    Pour trouver le river d'instrument de votre oscilloscope, faîtes une recherche sur ce lien. Si le driver d'instrument n'existe pas, reportez vous aux exemples VISA fournis avec LabVIEW. Par contre, il faut lire la documentation de votre oscilloscope afin de lui envoyer les bonnes commandes.
    Avant toute programmation, testez vos commandes à l'aide de MAX (Measurement & Automation Explorer).
    Salutations,
    Isabelle
    Ingénieur d'applications
    National Instruments France

  • Comment sortir d'une boucle

    Bonjour,
    comment je peux sortir d'une boucle while dans mon vi.
    dans "controle du moteur.vi" je dois changer la vitesse de rotation. vu que j'ai besoin d'une vitese qui soit variable, j'ai utiliser le vi pulse widith modulation. le problème c que dans ce vi je ne peux pas sortir de la boucle while tant que je n'ai pas appuyé sur stop.
    comment je dois faire pour que à chaque fois que je change la vitesse dans "controle du moteur.vi" automatiquement la fréquence change.
    Attachments:
    biblio.llb ‏911 KB

    Bonjour Salima,
    Je ne sais pas ci vous avez resous votre problem mais je vais asseyez. Je sais ce que vous voulez faire avec votre program. Le problem est que le subVI que vous utilizer (Pulse Width Modulator Revised.vi) a un boucle (loop) qui ne sort pas excepte quand le "Stop" est appuyer. Alors dans votre program principal (Control du Moteur.vi) vous finiras jamais le premier boucle parceque le program sera toujours entrains de finir le subVI Pulse Width Modulator Revised.
    La meilleur facons de resoudre ce problem c'est d'utilizer des "Global Variable". Pour apprendre comment utilizer global variables vous pouvez regarder les example qui viens avec LabVIEW. Alors dans votre program principal vous pouvez changer la frequence du moteur qui change le
    global variable qui change la frequence pendans que le subVI fonctionne. Vous devez aussi changer le proprete (property) du subVI pour que la boucle principal n'attend pas que le subVI finis avend quel la boucle tourne a la prochaine boucle (next iteration). Dans cette facon, vous pouvez controller les controles sur le subVI qui cours pendant que votre program principal cours.
    Vous devez excuser mons francais. J'espere que ca vous aide un peu. Bonjour.
    Ron

  • Probleme de decalage dans une boucle FOR

    Bonjour j'ai un petit probleme dans ma boucle j'ai un code source et je dois extraire des informations de temperature de vent ... voici les lignes où je dois extraire les infos : 
    <tr class="temp">
    <th scope="row">Temp. (&deg;C)</th>
    <td class="first-col">6&#176;</td>
    <td class="">6&#176;</td>
    <td class="">6&#176;</td>
    <td class="">6&#176;</td>
    <td class="">5&#176;</td>
    <td class="">5&#176;</td>
    <td class="">4&#176;</td>
    <td class="last-col">4&#176;</td>
    </tr>
    <tr class="realfeel">
    <th scope="row">RealFeel&#174;</th>
    <td class="first-col">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="">4&#176;</td>
    <td class="">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="">4&#176;</td>
    <td class="">4&#176;</td>
    <td class="last-col">3&#176;</td>
    </tr>
    <tr class="realfeel">
    <th scope="row">Pr&#233;cipitations</th>
    <td style="border-right:solid 1px #EFECE4;" class="first-col" colspan="3">50%</td>
    <td style="border-right:solid 1px #EFECE4;" class="bggray" colspan="3">50%</td>
    <td class="last-col" colspan="3">40%</td>
    </tr>
    <tr>
    <th scope="row">Vent (km/h)</th>
    <td class="first-col">13 OSO</td>
    <td class="">11 OSO</td>
    <td class="">10 OSO</td>
    <td class="">8 OSO</td>
    <td class="">6 OSO</td>
    <td class="">6 OSO</td>
    <td class="">5 OSO</td>
    <td class="last-col">5 SO</td>
    </tr>
    <tr>
    <th scope="row">Humidit&#233;</th>
    <td class="first-col">80%</td>
    <td class="">81%</td>
    <td class="">82%</td>
    <td class="">85%</td>
    <td class="">87%</td>
    <td class="">90%</td>
    <td class="">92%</td>
    <td class="last-col">93%</td>
    </tr>
    <tr>
    <th scope="row">Indice UV</th>
    <td class="first-col">1</td>
    <td class="">0</td>
    <td class="">0</td>
    <td class="">0</td>
    <td class="">0</td>
    <td class="">0</td>
    <td class="">0</td>
    <td class="last-col">0</td>
    </tr>
    <tr>
    <th scope="row">Couverture nuageuse</th>
    <td class="first-col">83%</td>
    <td class="">100%</td>
    <td class="">100%</td>
    <td class="">100%</td>
    <td class="">100%</td>
    <td class="">100%</td>
    <td class="">100%</td>
    <td class="last-col">100%</td>
    </tr>
    <tr class="last-row">
    <th scope="row">Point de ros&#233;e</th>
    <td class="first-col">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="">4&#176;</td>
    <td class="">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="">3&#176;</td>
    <td class="last-col">3&#176;</td>
    </tr>
     Le probleme que c'est j'ai fais 2 boucle For imbriqué la premiere elle lit les données " les valeurs de la temperature..." et la deuxieme pour quelle passe à la prochaine donnée par exemple:  vent pour que je puisse lire ces valeurs ainsi de suite , mais ca marche pas !!! vu quelle reste toujours dans la premiere donnée "temperature " ensuite elle sort, et  au final j'ai juste les primiere valeurs  AIDER MOI PLZZZZZZ !!! MERCI
    PS : voici mon VI dans les pieces jointes  
    Pièces jointes :
    La total.vi ‏95 KB

    Bonjour,
    Pour ce qui est de récupérer tes valeurs, il suffit de récupérer  et de modifier le Vi que je t'avais envoyé dans le post suivant :
    http://forums.ni.com/t5/Discussions-de-produit-de-NI/remplir-un-tableau/m-p/1870401#M45083
    Il d'y ajouter une boucle For de modifier les fins de lignes et de faire un tableau 1D avec les en-têtes des blocs de mesures que tu veux récupérer, par exemple :
    <th scope="row">Temp. (&deg;C)</th>
    <th scope="row">RealFeel&#174;</th>
    <th scope="row">Vent (km/h)</th>

  • Comment dans un évènement exécuter une boucle qui s'arrête avec un bouton stop?

    Je travaille sous LabVIEW 7.1.
    Sur l'exemple "Wave file payer" dans le répertoire E/S/sons, dans l'évènement [2] PLAY une boucle while s'exécute. A l'intérieur de cette boucle while des booléens stop et pause peuvent ête lus.
    Lorsque je crée un diagramme similaire, pendant l'exécution de la boucle while tout la face avant est inaccessible. Le programme se bloque sur la boucle while puisque le bouton stop l'arrêtant est inaccessible.
    Que manque-t-il à mon code?
    Merci.

    Comme je le pensais, c'est un "petit truc à savoir"
    En faisant un clic droit sur la structure Event, on peut aller dant "Edit event handled by this case..."
    Dans cette fenetre, en bas il faut décocher l'option "lock front panel until the event case for this event completes"... cette option parle d'elle même pour peut qu'on y prête attention et qu'on comprenne l'anglais
    J'espère que cela résoudra tes problèmes.
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"

  • Modif de valeurs pour un sousvi dans une boucle while

    Bonjour, j'ai une question qui a surement l'air un peu idiote mais j'essaie de modifier une frequence de sinusoide en utilisant un sous vi. Ce sous vi est dans une boucle while et helas il ne prend en compte que la premiere valeur au demarrage du vi. Comment je peux modifier les vi de facons a ce que je puisse modifier la valeur de la frequence a mon gre. D'avance merci, je joins un projet exemple de ce que j'aimerais faire, merci de votre aide
    Pièces jointes :
    essai.lvproj ‏8 KB

    Bonjour,
    Vous pouvez utiliser les références pour contrôler votre sous-VI. Voici un exemple : Using Control References to Pass Access of Front Panel Controls to SubVIs
    Cordialement,
    Charlotte F. | CLAD
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> "Du 11 octobre au 17 novembre, 2 sessions en parallèle : bien démarrer - approfondir vos connais...

  • Keithley 2400 Meter Read dans une boucle - probleme de status byte read

    Bonjour,
    j'utilise un Keithley 2400 pour mesurer un potentiel. J'ai débuté en utilisant le modèle Read.vi du driver. Dans mon cas, la portion "read single" se trouve dans une boucle for et après un certain nombre de mesures (cela semble aléatoire), la fonction gèle et en remontant les étapes, on découvre qu'il s'agit de la lecture de "status byte" qui ne reçoit aucune réponse en amont. Il faut alors redémarrer complètement le programme. Celà survient à chaque fois et après un nombre d'itérations variable.
    J'ai même tenté de mettre une boucle while directement dans l'exemple "read single" (le .vi) et le problème est exactement le même, même si on ajoute un wait à la boucle. Après un certain temps, ça gèle et c'est le status read qui ne reçoit aucune réponse.
    Merci.

    Bonsoir PG123,
    Ce que je vois directement dans votre VI c'est le fait que vous exécutiez à la vitesse maximum votre boucle While sans le moindre cadencement ne laissant ainsi jamais de temps disponible au processeur pour effectuer d'autres tâches. Il est propable de plus que l'instrument ne supporte pas un nombre de requêtes aussi élevée saturant peut être son buffer ou ne laissant pas le temps à l'instrument d'écrire correctement les valeurs.
    De plus, je pense que vous n'avez pas besoin de récupérer à la vitesse maximum toutes les valeurs possibles provenant de votre instrument. C'est pourquoi je pense qu'une lecture toutes les 200ms suffirait déjà amplement.
    Voici donc à quoi devrait ressembler l'intérieur de votre boucle While :
    Essayez avec un cadencement d'1 seconde (1000ms en entrée de la fonction) dans un premier temps et voyez si le problème de gel se produit. Si ce n'est pas le cas, vous pourrez alors progressivement diminuer la valeur de cadencement (jusqu'à 200ms minimum, celà devrait suffire comme déjà dit au dessus.
    Cordialement,
    Jérémy C.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • Diagramme de bode dans une boucle de simulation

    Bonjour,
    je continue mes questions sur control design et simulation
    Comment à partir d'un système décrit dans une boucle de simulation, tracer le diagramme de Bode de la fonction de transfert en boucle ouverte?
    merci
    Robert Papanicola
    http://sciences-indus-cpge.papanicola.info/
    http://www.medicalistes.org/~maxime-plus/

    Bonjour,
    Excusez moi mais j'ai un peu de mal à comprendre votre problème.
    J'ai essayé de faire un test que je vous envoie en pièce jointe.
    Ici j'ai initialisé mon tableau et chaque itération de boucle se fait au bout de 1 sec.
    Etant donné que la seule donnée logique de mon tableau initialisé se trouve à la ligne n ou je met n (attention le tableau commence à l'indice 0) alors je sortirai de la boucle ou bout de n+1 sec.
    J'espère que ce VI répondra à votre question, sinon, n'hésitez pas à revenir vers nous et à nous donner plus d'informations.
    Cordialement.
    Pierre Denis
    National Instrument
    Pierre_D
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    LabVIEW Tour
    Journées Techniques dans 10 villes en France, du 4 au 20 novembre 2014
    Attachments:
    test.vi ‏9 KB

  • Comment créer une source de cadencement à 1MHz dans une boucle cadencée?

    Comment créer une source de cadencement à 1MHz dans une boucle cadencée?

    Bonjour Julie,
    Je ne comprends pas très bien votre question.
    Tout d'abord, à l'avenir, préférez recréer votre propre post sur le forum, celui-ci datant de 2006, vous pouvez être quasiment sûr que les gens qui y ont participé ne sont plus aussi disponible pour vous répondre.
    D'autre part, le module 8451, qui gère la communication SPI peut gérer des horloges jusqu'à 12MHz, je ne vois pas où est votre problème d'horloge à 1MHz.
    Le problème qui se posait dans le poste d'origine était d'avoir une boucle logicielle qui allait à plus d'1MHz, ce qui est très dur et qui demande du matériel particulier. C'est déjà une limite quasiment inatteignable avec un environnement RT, et il faudra plutot se tourner vers de la technologie FPGA.
    En revanche, si votre besoin est de gérer une comm SPI à 1MHz, vous pouvez très bien avoir le module 8451 qui fait le codage et décodage SPI, et votre programme qui lui tourne à quelques ms pour récupérer ou envoyer de nouvelles données sur le bus!
    J'espère vous avoir éclairé!
    Cordialement,
    Olivier L. | Certified LabVIEW Developer

  • Table: enleverun ligne dans une boucle while

    bonjour,
    je remplis une table avec des valeurs, le but est de pouvoir effacer une ligne quand j'ai fais une faute ,
    le probleme quand je click  droit souris sur la table supprimer la ligne , ca ne marche pas,car je suis dans un boucle infini.
    je veux rester dans la boucle et effacer la ligne , si vous avez une idée, ou améliorer mon programme
    merci.
    Pièces jointes :
    table.vi ‏136 KB

    Bonjour Babnour,
    J'espère que cet exemple vous éclairera; à vous par la suite de le réutiliser et de l'adapter exactement à ce dont vous avez besoin. Il me semble que vous connaissez déjà la structure évènement, et je l'ai enregistré pour LabVIEW 7.0...
    Une remarque concernant les tableaux: il est recommandé lorque l'on en connaît la taille, d'utiliser la fonction remplacer un élément, plutôt que ajouter un élément (gestion de mémoire plus efficace, puisque dès l'initialisation du tableau, l'espace mémoire nécéssaire est alloué).
    Dans l'exemple, la taille du tableau est réglable (avant de lancer l'éxécution) et paramétrée à 8 par défaut. en focntion de l'évènement "clic" détecté, on détermine l'index qui servira pour la fonction remplacer, et l'index pour la prochaine itération de la boucle globale. Si cet index suivant sort de la gamme d'index possible du tableau, on ne modifie pas le tableau, on ne prend pas en compte la modification d'index, et un message apparaît.
    Cordialement,
    Message Edité par Mathieu R. le 09-08-2006 03:26 PM
    .mrLeft{float:left} .mrInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898}
    Mathieu R.  
      CTD - Certified TestStand Developer / Développeur TestStand Certifié  
      CLAD - Certified LabVIEW Associate Developer  
    Pièces jointes :
    tableRem.vi ‏47 KB

  • Je ne peut pas faire de mises à jour, on m'indique : une erreur inattendue est survenue. Que faire ??

    Je ne peut pas faire de mises à jour, on m'indique : une erreur inattendue est survenue. Que faire ??

    it's a MacBook Pro, bought it like 4 years ago and i'm trying to update iTunes 11.1.2 , Security update 1.0 , Safari 5.1.10 , mise a jour d'assistant migration 1.1 and canon inkjet printer software 2.12

Maybe you are looking for