Skip to content
Snippets Groups Projects
Commit eece515d authored by Susanna Weber's avatar Susanna Weber
Browse files

Json parser for soil to opc ua objects

parent f5d16167
Branches
No related tags found
No related merge requests found
import json
from collections import namedtuple
#from json import JSONEncoder
def measurementJsonDecod(measurementdict):
return namedtuple('Measurement', measurementdict.keys())(*measurementdict.values())
class Measurement:
def __init__(self, name, description, datatype,dimension, unit = None, range=None) :
self.name = name
self.description = description
self.datatype = datatype
self.range = range
self.dimension = dimension
self.unit = unit
#self.value = value
array = []
# calculate a start value
if self.dimension != 0:
for i in range(self.dimension):
array.append(self.datatype((self.range[0] + self.range[1]) / 2))
self.value = array
else:
self.value = self.datatype(((self.range[0] + self.range[1]) / 2))
def dimensionchange(string):
dimarr = string["dimension"]
if dimarr:
value = dimarr[0]
else:
value = 0
newdimension = {"dimension": value}
string.update(newdimension)
def changerange(string):
range = string["range"]
rangetuple = (range[0], range[1])
string.update({"range": rangetuple})
with open ("soil-dummies/src/robot/model.json") as file:
#robot = json.dumps(file.read())
robotload = json.loads(file.read())
measurements = robotload["measurements"]
measurementobj = []
for i in measurements:
obj = i
#del obj["value"]
del obj["uuid"]
dimensionchange(obj)
if i["range"]:
changerange(obj)
obj = json.dumps(i)
measurementobji = json.loads(obj, object_hook=measurementJsonDecod)
measurementobj.append(measurementobji)
#measurementobj[2].value = [0.0, 0.0, 0.0]
# print(measurements)
# print(measurementobj[0].value)
# for i in measurementobj:
# print(i)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment