Je souhaite améliorer l'efficacité avec Python même dans le système expérimental (4) Utilisez ser.close () lorsqu'une erreur est générée en utilisant la syntaxe try.

Synopsis jusqu'à la dernière fois

Jusqu'à la dernière fois, la mesure peut être automatisée. Cette fois, lorsque l'appareil de mesure est de mauvaise humeur, il lancera une erreur, nous allons donc y remédier.

Problème à deux chiffres ou plus inacceptable du port COM Windows

Résoudre à l'aide de la syntaxe try

Si vous écrivez le nom de l'exception (imprimé lorsqu'une erreur se produit) après «sauf», vous pouvez déterminer le comportement en cas d'échec. Cette fois, je vais faire ser.close ().

try:
    while 1:
        if pulse >= MAX:
            ##Termine l'instruction while lorsque la position atteint MAX
            break
        ##Enregistrer les informations de localisation actuelles
        pulse_list.append(pulse/2)
        ##Mesurer le courant(La valeur à cette position est la moyenne de 5 fois.)
        for i in range(5):
            ser = serial.Serial(COMampere,bitRate,timeout=0.1)
            ser.write(b"F5, R0,PR2\r\n")
            time.sleep(1)
            ser.write(b"MD?\r\n")
            time.sleep(1)
            tmp = ser.read_all()
            #Ignorer s'il n'y a pas de courant
            if len(tmp)== 0:
                ser.close()
                continue
            ampere = float(tmp.split()[2])
            ampere_average_list.append(ampere)
            time.sleep(1)
            ser.close()
        ##Courant et impulsion(position)Lister
        ampere_list.append(sum(ampere_average_list)/len(ampere_average_list))
        ampere_average_list = []

        ##Déplacer la table optique
        pulse += 1000
        position = "A:2+P"+str(pulse)+"\r\n"
        ser = serial.Serial(COMpulse,bitRate,timeout=0.1)
        ser.write(bytes(position, 'UTF-8'))
        time.sleep(1)
        ser.write(b"G:\r\n")
        ser.close()

    ##Transformez la liste en un dataframe
    print(ampere_list)
    print(pulse_list)
    df = pd.DataFrame({'ampere(A)':ampere_list,'pulse':pulse_list})
    def pulseToMilliMeter(pulse):
        return pulse*0.006
    df["position(mm)"] = df["pulse"].map(pulseToMilliMeter)
    df.to_csv('./csv/result.csv',index=False)
    plt.figure()
    df.plot(x='position(mm)',y='ampere(A)',marker='o')
    plt.savefig('./img/sample.png')
    plt.close('all')
except IndexError:
    ser.close()

Recommended Posts

Je souhaite améliorer l'efficacité avec Python même dans le système expérimental (4) Utilisez ser.close () lorsqu'une erreur est générée en utilisant la syntaxe try.
Je souhaite améliorer l'efficacité avec Python même dans les systèmes expérimentaux (2) RS232C et pySerial
Je souhaite améliorer l'efficacité avec Python même dans un système expérimental (1) Installer Anaconda avec Chocolatey
Je veux améliorer l'efficacité avec Python même dans un système expérimental (3) Je veux faire quelque chose comme Excel avec Pandas
Je souhaite améliorer l'efficacité avec Python même dans le système expérimental (5) Je souhaite envoyer une notification à la fin de l'expérience avec l'API slack
J'obtiens une erreur lorsque j'essaie d'élever Python à la série 3 en utilisant pyenv dans Catalina
Je connais? Analyse de données à l'aide de Python ou de choses que vous souhaitez utiliser quand vous le souhaitez avec numpy
Lorsque vous souhaitez l'utiliser tel quel lorsque vous l'utilisez avec lambda memo
Je souhaite utiliser le répertoire temporaire avec Python2
J'ai eu une erreur lorsque j'ai mis opencv dans python3 avec Raspeye [Remedy]
[Python] Je souhaite utiliser uniquement l'index lors de la mise en boucle d'une liste avec une instruction for
Même avec JavaScript, je veux voir Python `range ()`!
Je veux travailler avec un robot en python.
Je souhaite envoyer un message d'erreur en japonais avec le formulaire de changement de mot de passe django
J'ai eu une erreur lors de l'utilisation de Tensorboard avec Pytorch
Je veux utiliser le jeu de données R avec python
Je veux faire quelque chose avec Python à la fin
Lorsque j'essaye de mettre à jour les données sur DynamoDB avec Python (boto3), j'obtiens "ExpressionAttributeNames contient une clé invalide: Erreur de syntaxe; clé: <nom de clé>"
[Solution] Lorsque j'essaye de me connecter à CloudSQL avec GAE, j'obtiens une ImportError uniquement lorsque dev_appserver.
[Python] Je souhaite utiliser l'option -h avec argparse
Précautions lors de l'utilisation de Python avec AtCoder
Choses à garder à l'esprit lors de l'utilisation de cgi avec python.
Je souhaite utiliser un caractère générique que je souhaite décortiquer avec Python remove
Je veux résoudre APG4b avec Python (seulement 4.01 et 4.04 au chapitre 4)
Je veux utiliser des rails avec des rails même dans un environnement vagabond
Quand j'obtiens une erreur avec Pylint sur Windows Atom
J'obtiens une erreur en essayant d'installer maec 4.0.1.0 avec pip
[Python] Lorsque vous souhaitez utiliser toutes les variables dans un autre fichier
Je souhaite utiliser une bibliothèque externe avec IBM Cloud Functions
Lorsque j'essaye d'utiliser pip, le module SSL n'est pas disponible.
Lorsque vous souhaitez envoyer un objet avec des requêtes à l'aide de flask
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
Lorsque j'essaie d'exécuter la commande make de Makefile avec os / exec de golang, la deuxième exécution et les suivantes entraînent une erreur.
Je veux déboguer avec Python
Utilisons la VM NAOqi OS. Je veux résoudre les dépendances avec pip même dans le développement Pepper
Comment écrire quoi faire lorsque l'application est affichée pour la première fois dans Qt pour Python avec Designer
Un référentiel essentiel à utiliser lorsque vous souhaitez l'essayer avec ansible
Comment gérer l'erreur OAuth2 lors de l'utilisation des API Google à partir de Python
[Python] Que faire lorsqu'une erreur liée à l'authentification SSL est renvoyée
Maintenance de l'environnement réalisée avec Docker (je souhaite post-traiter GrADS en Python
Je veux colorer une partie de la chaîne Excel avec Python
Essayez de piquer la base de données sur IBM i avec python + JDBC à l'aide de JayDeBeApi
Je suis un amateur le 14e jour de python, mais je veux essayer l'apprentissage automatique avec scicit-learn
Essayez de vous connecter à qiita avec Python
Je veux utiliser jar de python
Je veux analyser les journaux avec Python
Comment utiliser is et == en Python
Comment créer un environnement lorsque vous souhaitez utiliser python2.7 après l'installation d'Anaconda3
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
[python] Que faire si vous obtenez une erreur avec send_keys dans le chrome sans tête
Trois choses auxquelles j'étais accro lors de l'utilisation de Python et MySQL avec Docker
La synchronisation de la sortie est incorrecte lorsque la sortie standard (erreur) est convertie en fichier en Python
Points à garder à l'esprit lors de l'utilisation de Python pour ceux qui utilisent MATLAB
Que faire si vous obtenez une erreur lors de l'installation de python avec pyenv
Lorsque j'essaye d'utiliser le notebook Jupiter sur Mac, je ne peux sélectionner que python2
Le programme Python est lent! Je veux accélérer! Dans ce cas ...
Pour envoyer automatiquement des e-mails avec des pièces jointes à l'aide de l'API Gmail en Python