65 lines
2 KiB
Python
65 lines
2 KiB
Python
|
import math
|
||
|
import numpy as np
|
||
|
import matplotlib.pyplot as plt
|
||
|
|
||
|
import struct
|
||
|
|
||
|
#"C:\Users\quent\OneDrive\Bureau\ENSC\TransD\Framboisier\02400001.TXT"
|
||
|
#! /usr/bin/env python3
|
||
|
# -*- coding: UTF-8 -*-
|
||
|
AllRes = [[],[],[],[],[],[],[],[]]
|
||
|
for i in range(31,34): #choix desfichiers ouvert (utilisation d'un chemin relatif)
|
||
|
compteur = 0
|
||
|
if i < 10: #suivant si le fichier fini par un nombre inférieur ou supérieur à 10 on complète notre lien soit par "0"+i soit par i
|
||
|
complement_link = "0" + str(i)
|
||
|
else:
|
||
|
complement_link = str(i)
|
||
|
link = "Framboisier/024000" + complement_link +".TXT"
|
||
|
|
||
|
f = open(link , "rb")#ouvertuture du fichier txt traiter
|
||
|
|
||
|
while True:
|
||
|
# Lecture 26 octets dans le fichier
|
||
|
record = f.read(26)
|
||
|
if len(record) != 26:
|
||
|
break;
|
||
|
#compteur += 1
|
||
|
# Test si on est sur la ligne de #####...
|
||
|
if record[:18] == b'#################\n':
|
||
|
# Lit le complement et reconstitue l'enregistrement
|
||
|
complement = f.read(18)
|
||
|
record = record[18:] + complement
|
||
|
|
||
|
# Ajoute un octet null tous les 3 octets a partir du 2ème caractère jusqu'à l'avant dernier
|
||
|
record_4x8_octets = bytearray()
|
||
|
i=1;
|
||
|
while i<25:
|
||
|
record_4x8_octets.append(record[i])
|
||
|
if i % 3 == 0:
|
||
|
record_4x8_octets.append(0) # Tous les 3 octets, on en ajoute un null
|
||
|
i += 1
|
||
|
|
||
|
# Converti l'enregistrement (tableau de bytes) en 8 entiers signés
|
||
|
resultat_fois256 = struct.unpack('>iiiiiiii', record_4x8_octets)
|
||
|
|
||
|
# Divise les résultats par 256 pour recadrer les 3 octets à gauche en conservant le signe
|
||
|
resultat = []
|
||
|
for i in range(len(resultat_fois256)):
|
||
|
res = resultat_fois256[i] // 256 * 20
|
||
|
AllRes[i].append(res)
|
||
|
|
||
|
#a la fin de chaque fichier de mesure en trouve une série de 19 zéros écrit par le capteur
|
||
|
for i in range(19): #cette boucle permet de retirer les 19 zéros du signal
|
||
|
for j in range(8):
|
||
|
AllRes[j].pop()
|
||
|
|
||
|
f.close() #fermeturedu fichier txt
|
||
|
x = np.array(AllRes[0][:])
|
||
|
y = np.split(x,4)
|
||
|
moyenne = np.zeros(len(y))
|
||
|
for i in range(len(y)):
|
||
|
res = 0
|
||
|
for j in range(len(y[i])):
|
||
|
res += y[i][j]
|
||
|
moyenne[i] = res/len(y[i])
|
||
|
print(moyenne)
|