modbus_test/prepare.py

40 lines
1.3 KiB
Python

import glob
all_files = glob.glob("data/*.nc")
# file = all_files[0]
def get_value(c, s):
[x] = [item.replace(s, '') for item in c if item.startswith(s)] or [0]
return float(x)
for file in all_files:
with open(file, 'r') as fp:
lines = fp.readlines()
print(file)
prev_x = None
prev_y = None
prev_z = None
result = []
step = None
for l in lines[31:-10:5]:
data = l.strip().split(' ')
prep = {}
for item in data:
prep[item[:1]] = item[1:]
if 'G' in prep and prep['G'] == '01':
step = prep['G']
if step == '01':
if 'A' in prep:
prep['U'] = float(prep.pop('A')) / 100
if 'B' in prep:
prep['V'] = float(prep.pop('B')) / 100
if 'C' in prep:
prep['W'] = float(prep.pop('C')) / 100
filtered_prep = {p:prep[p] for p in prep if p in ['X', 'Y', 'Z', 'U', 'V', 'W']}
if(len(filtered_prep.keys())):
result.append([f"{p}{filtered_prep[p]}" for p in filtered_prep])
with open(f"{file}.result", 'w') as fp:
fp.write('\n'.join(' '.join(str(i) for i in x) for x in result))