Python Forum
Reading data from Serial
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Reading data from Serial
#1
I'm trying to read data from serial port and save it to file but when doing so I lose 10 minutes od data every 1 hour any ideas?

Code:
#!/usr/bin/env python
import tkinter
import serial
import numpy as np
import struct
from time import gmtime, strftime
import os,sys
from datetime import datetime,timedelta
import matplotlib.pyplot as plt
plt.ion()
#start reading from serial
ser = serial.Serial('/dev/ttyUSB0', 34800)
i = 0
#os.remove("test.csv")
#f = open("data.csv","wb")
f2= open("tempV.csv","wb")
#ax1=plt.axes()
#ch1fin = [0] * 50
#line, = plt.plot(ch1fin)
while ser is not None:
      fin = np.array([])
      temp= np.array([])
      volt= np.array([])
      t2= np.array([])
      t1 = datetime.now()
      directory = os.path.basename(t1.strftime("%d-%m-%y"))
      #print(directory)
      if not os.path.exists(directory):
         os.makedirs(directory)
      #dirPath2 = os.path.join(directory+(t1.strftime("%H-%M-%S.%f")))
      f = open(directory + '/' + (t1.strftime("%H-%M-%S.%f") + '.csv'),"wb")
      last_t= datetime.now()
      delta = timedelta(seconds=.02)
      #w2 = np.array([])
      #w=np.append(w,now)
      #w2=np.append(w2,now.strftime("%H:%M:%S.%f"))
      #for n in range (0,36000):
      for i in range (0,3600):
            #print(w2) 
            now = datetime.now()                      
            data = struct.unpack('B' *160 , ser.read(160))
            l=0
            for l in range (0,160,16):
                datasync = data[l]
                if datasync == 170:
                   dataz = data[(l+1):(l+15)]
                   ch1fin = np.array([])
                   w = np.array([])
                   w=np.append(w,last_t)
                   w2 = np.array([])
                   w2=np.append(w2,last_t.strftime("%H:%M:%S.%f"))
                   m = 0
                   k = 1
                   for m in range (0,10,2):
                     ch1 = (((dataz[m])*265) + (dataz[(m+1)]))
                     ch1fin=np.append(ch1fin,ch1)
                     w1= w[(k-1)] + delta
                     w=np.append(w,w1)
                     w2=np.append(w2,w1.strftime("%H:%M:%S.%f"))
                     k=k+1
                w2=w2[0:5]
                last_t=w[5]
                fin =  np.column_stack((ch1fin, w2))
                np.savetxt(f,fin,delimiter=",",fmt="%s") 
                temp=(((dataz[10])*265) + (dataz[(11)]))      
                volt=(((dataz[12])*265) + (dataz[(13)]))
                t2=now.strftime("%H:%M:%S.%f")
                fin2 =  np.column_stack((temp, volt, t2))
                np.savetxt(f2,fin2,delimiter=",",fmt="%s")
                print(fin)
Reply


Messages In This Thread
Reading data from Serial - by elgabry - Jul-05-2018, 11:36 AM
RE: Reading data from Serial - by j.crater - Jul-05-2018, 05:10 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Reading large crapy text file in anaconda to profile data syamatunuguntla 0 811 Nov-18-2022, 06:15 PM
Last Post: syamatunuguntla
  HeatMap plot with arduino serial data tshivam 0 3,178 Oct-08-2018, 10:57 AM
Last Post: tshivam
  Reading json file as pandas data frame? Alberto 1 8,309 Feb-05-2018, 12:43 AM
Last Post: snippsat

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020