Arquivos
OpenBCI_Python/plugins/csv_collect.py
T

59 linhas
1.5 KiB
Python
Arquivo Executável

import csv
import timeit
import datetime
import plugin_interface as plugintypes
class PluginCSVCollect(plugintypes.IPluginExtended):
def __init__(self, file_name="collect.csv", delim = ",", verbose=False):
now = datetime.datetime.now()
self.time_stamp = '%d-%d-%d_%d-%d-%d'%(now.year,now.month,now.day,now.hour,now.minute,now.second)
self.file_name = self.time_stamp
self.start_time = timeit.default_timer()
self.delim = delim
self.verbose = verbose
def activate(self):
if len(self.args) > 0:
if 'no_time' in self.args:
self.file_name = self.args[0]
else:
self.file_name = self.args[0] + '_' + self.file_name;
if 'verbose' in self.args:
self.verbose = True
self.file_name = self.file_name + '.csv'
print("Will export CSV to:" + self.file_name)
#Open in append mode
with open(self.file_name, 'a') as f:
f.write('%'+self.time_stamp + '\n')
def deactivate(self):
print("Closing, CSV saved to:" + self.file_name)
return
def show_help(self):
print("Optional argument: [filename] (default: collect.csv)")
def __call__(self, sample):
t = timeit.default_timer() - self.start_time
#print(timeSinceStart|Sample Id)
if self.verbose:
print("CSV: %f | %d" %(t,sample.id))
row = ''
row += str(t)
row += self.delim
row += str(sample.id)
row += self.delim
for i in sample.channel_data:
row += str(i)
row += self.delim
for i in sample.aux_data:
row += str(i)
row += self.delim
#remove last comma
row += '\n'
with open(self.file_name, 'a') as f:
f.write(row)