저는 파이썬 2.7 에서 일하고 있습니다. UART에서 직렬 데이터를 가져오고 있습니다.파이썬을 사용하여 텍스트 파일에 배열 값을 저장하십시오.
데이터를 수신하면 실시간 데이터 값을 실시간으로 저장하려고합니다.
2.1862745098X 2.42156862745X 2.42156862745X 0.401960784314X 0.0X 0.637254901961X 1.49019607843X ............ 기타 등등
:데이터 UART로부터의 형식은
는 I는 다음 코드를 이용하여 시간과 함께 값을 저장하고있다 : I 직면하고
f1 = open('accelerometer sensor1.txt','w')
while 1:
# Read from serial port, blocking
data =ser.read(1)
data1=(data)
# If there is more than 1 byte, read the rest
n = ser.inWaiting()
data1 = (data1 + ser.read(n))
l = data1.split()
#t1 = datetime.datetime.now()
x = [d.strip("X") for d in l if d[len(d)-1] == "X"]
for i in range(0,len(x)):
f1.write(str(datetime.datetime.now()))
f1.write("\t")
f1.write(str(x[i]))
f1.write("\n")
문제점 I가 특정 시간에 다수의 값을 수신하고있다. 내가 데이터를 저장할 때, 그것의 형식은 :
2014-09-22 11:30:40.980000 2.1862745098
2014-09-22 11:30:40.980000 2.42156862745
2014-09-22 11:30:40.980000 1.71568627451
2014-09-22 11:30:40.980000 0.401960784314
2014-09-22 11:30:40.980000 0.0
2014-09-22 11:30:40.980000 0.637254901961
2014-09-22 11:30:40.980000 1.49019607843
2014-09-22 11:30:40.980000 2.42156862745
2014-09-22 11:30:40.980000 2.5
2014-09-22 11:30:40.980000 1.58823529412
2014-09-22 11:30:40.980000 0.78431372549
2014-09-22 11:30:40.980000 0.0
2014-09-22 11:30:40.980000 0.196078431373
2014-09-22 11:30:40.980000 1.17647058824
2014-09-22 11:30:40.980000 1.74509803922
2014-09-22 11:30:40.980000 2.49019607843
2014-09-22 11:30:40.980000 2.44117647059
2014-09-22 11:30:40.980000 1.33333333333
2014-09-22 11:30:40.980000 0.558823529412
2014-09-22 11:30:40.980000 0.0
2014-09-22 11:30:40.980000 0.205882352941
2014-09-22 11:30:40.980000 1.43137254902
2014-09-22 11:30:40.980000 2.08823529412
내가이 형식으로 싶지 않아, 나는 각 샘플에 대한 실시간 수신 샘플 포인트의 그룹이 실시간으로 오히려 접수합니다. 내가 그렇게 할 수있는 방법
2014-09-22 11:30:40.980000 2.1862745098
2014-09-22 11:30:40.980010 2.42156862745
2014-09-22 11:30:40.980020 1.71568627451
2014-09-22 11:30:40.980030 0.401960784314
2014-09-22 11:30:40.980040 0.0
:
나는 텍스트 파일이 뭔가를 보여주고 싶은? 몇 가지 제안을하십시오.
Thanks`는
편집
나는 각각의 샘플 포인트는 다른 타임 스탬프를 갖고 싶어. 이것은 각 샘플 포인트가 그룹이 아닌 개별적으로 직렬 포트를 통해 들어 오기 때문에 가능해야합니다. 나는이 샘플 포인트를 읽는 방법에 문제가있을 수 있다고 생각합니다. 어떻게 든 개별적으로 읽으면 내 목적이 해결 될 것입니다.
각 샘플 포인트를 개별적으로 얻으려고했습니다. 그렇게 할 수는 있지만 코드가 매우 느려졌습니다. 난 그냥 한
data =ser.readline(5)
data1=(data)
UART를 통해 오는
값이 유형은 다음과 같습니다 127X 154X 100X 158X 0X 20 배 .............
내용을 읽어 수있는 방법이 있나요 값을 개별적으로 또한 속도를 손상시키지 않고
원하는 형식을 알고 있습니까? 그렇다면 추가하십시오. 그렇지 않다면, 더 자세하게 설명하십시오. 과거 데이터가 필요하지 않은 것 같습니다. – mrcrgl
다시 질문을 확인하십시오. 원하는 형식을 추가했습니다. – yuvraj