csv输出文件中的错误;从arduino收集的数据

时间:2018-01-19 16:19:08

标签: python csv arduino multiprocessing

我正在为我的硕士论文创建一个程序。该程序从arduino读取数据并将其写入csv文件。这只是程序的一部分,所以我使用多处理模块。

但该程序在csv文件中出现了一些错误,尤其是在开头。它应该在每一行写一个3位数字。有时它会“吃掉”一些数字。它看起来像这样:

//config.js
export default {
  key: 'xxxxx',
  domain: 'www.abc.com'
}

//app.js
import appconfig from './config.js';

function app() {
  const config = appconfig;
  //do something
}

它只在前100-200行中随机发生(整个文件有几千行)。我不知道是什么原因引起了这个问题。

这是该计划的一部分:

308,0
,0
313,0
313,0
313,0
313,0
12,0
307,0
306,0
0,0
305,0

这是arduino的一部分:

def port_reader(q, quit):
    ser = serial.Serial('/dev/ttyACM0', 9600, timeout=0)
    while quit.empty():
        try:
            q.put(ser.readline())
        except ser.SerialTimeoutException:
            print('Data could not be read')
        time.sleep(0.04) 

def output_creator(num, q, flag, quit):
    out_path = "GSR_data/"+str(num.get())+"_GSR.csv"
    while quit.empty():
        data = q.get()
        with open(out_path, 'a') as out_file:
            try:
                out_file.write(re.sub("[^0-9]", "", data)+","+str(int(flag.value))+"\n")
            except OSError:
                print "No file"

resp_n = mp.Queue()
gsr_data = mp.Queue()
quit = mp.Queue()
flag = mp.Value('d', 0)
proc1 = mp.Process(target=port_reader, args=(gsr_data, quit))
proc2 = mp.Process(target=output_creator, args=(resp_n, gsr_data, flag, quit))
resp_n.put(resp_number)
proc1.start()
proc2.start()

0 个答案:

没有答案