-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsim_writecsv.py
35 lines (29 loc) · 1.14 KB
/
sim_writecsv.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#開発テスト用ファイル
#直接、最新のCSVに仮想のデータを書き込む
import time
import math
import datetime
settingf = open("setting_plotter.txt", "r")
csvfilename = settingf.readline().rstrip('\n')
csvfilename_relay = settingf.readline().rstrip('\n')
print(csvfilename, csvfilename_relay)
csvf = open("./csv/"+csvfilename, "a")
csvf_relay = open("./csv/"+csvfilename_relay, "a")
for x in range(5000):
now = datetime.datetime.now()
timestamp = now.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
airspeed = abs(math.sin(x/30)*5.0+2.0)
ruddertrim = 1.0+ 0 if x%720<360 else math.sin(x*4*3.1415/180)
elevatortrim = -1.0+ 0 if x%720>360 else math.sin(x*4*3.1415/180)
rudder = math.cos(x/5)*6
elevator = math.sin(45+x/3)*2
#time,airspeed,rudder,rudder_trim,elevator,elevator_trim\n")
texttosave = timestamp+",{:.2f}".format(airspeed)+","+"{:.2f}".format(rudder+ruddertrim)+","+"{:.2f}".format(ruddertrim)+","+"{:.2f}".format(elevator+elevatortrim)+","+"{:.2f}".format(elevatortrim)+"\n"
if (x/50)%3 < 1:
csvf.write(texttosave)
csvf.flush()
elif (x/50)%3 < 2:
csvf_relay.write(texttosave)
csvf_relay.flush()
time.sleep(0.1);
csvf.close()