X-Git-Url: https://git.realraum.at/?p=svn42.git;a=blobdiff_plain;f=sensorvalues-to-json-zmq.py;h=fa6e7f58512b2ef1041abfa69a23b9dfe4d4ce29;hp=e2ed5d69f507bf1c2d1f67f1c051441a2274ccad;hb=d3dd7636b3d3386aa3a328b251478c8396477e30;hpb=edb1efde632b3a2ddcfab41b75d1da61559d098c diff --git a/sensorvalues-to-json-zmq.py b/sensorvalues-to-json-zmq.py index e2ed5d6..fa6e7f5 100755 --- a/sensorvalues-to-json-zmq.py +++ b/sensorvalues-to-json-zmq.py @@ -162,40 +162,43 @@ def exitHandler(signum, frame): sys.exit(0) time_column_name_="Time" -lastest_values_ = {} +latest_values_ = {} sensor_store_ = {} sensor_cols_num_ = {} #stores number of columns for a sensor not counting Time (x-axis) column. AKA the number of data-rows. Equals highest SensorIndex +1 reset_these_structnames_ = {} def addEventToTempLastValueStore(structname, msgdata): - global lastest_values_ - sensorindex = msgdata["Sensorindex"] if "Sensorindex" in msgdata else 0 - if not structname in lastest_values_: - lastest_values_[structname]=[] + global latest_values_ + sensorindex = int(msgdata["Sensorindex"]) if "Sensorindex" in msgdata else 0 + if not structname in latest_values_: + latest_values_[structname]=[] if not structname in sensor_cols_num_ or sensor_cols_num_[structname] < sensorindex +1: sensor_cols_num_[structname] = sensorindex +1 - if len(lastest_values_[structname]) < sensor_cols_num_[structname]: - lastest_values_[structname] += [0] * (sensor_cols_num_[structname] - len(lastest_values_[structname])) + if len(latest_values_[structname]) < sensor_cols_num_[structname]: + latest_values_[structname] += [0] * (sensor_cols_num_[structname] - len(latest_values_[structname])) expandSensorStoreLists(structname, sensor_cols_num_[structname]) # store Value in temp last value store: try: - del dictdata["Sensorindex"] - del dictdata["Ts"] + del msgdata["Sensorindex"] + except: + pass + try: + del msgdata["Ts"] except: pass if len(msgdata) > 0: #store first value that is not Sensorindex or Ts into store - lastest_values_[structname][sensorindex] = msgdata.values()[0] + latest_values_[structname][sensorindex] = msgdata.values()[0] else: #if that value does not exist, (i.e. movementevent), count event occurances - lastest_values_[structname][sensorindex] += 1 + latest_values_[structname][sensorindex] += 1 reset_these_structnames_[structname] = True def cleanTempLastValueOfMovementValues(): - global lastest_values_ + global latest_values_ for k in reset_these_structnames_.keys(): - lastest_values_[k] = [0] * sensor_cols_num_[structname] + latest_values_[k] = [0] * sensor_cols_num_[k] def expandSensorStoreLists(structname, newlength): @@ -205,26 +208,27 @@ def expandSensorStoreLists(structname, newlength): #remove old headings so we can add them again below try: if sensor_store_[structname][0][0] == time_column_name_: - sensor_store_[structname][0].pop(0) + sensor_store_[structname].pop(0) except: pass #expand all previous value lists - sensor_store_[structname] = map(lambda l: l + ([0] * (newlength +1 - len(l))) , sensor_store_[structname]) + newlength_including_time = newlength +1 + sensor_store_[structname] = map(lambda l: l[:newlength_including_time] + ([0] * (newlength_including_time - len(l))) , sensor_store_[structname]) def addEventsToStore(): global sensor_store_ ts = int(time.time()) - for structname in lastest_values_.keys(): + for structname in latest_values_.keys(): if not structname in sensor_store_: sensor_store_[structname]=[] #if missing, add Header List [Time, 0, 1, 2] if len(sensor_store_[structname]) == 0 or len(sensor_store_[structname][0]) < 2 or sensor_store_[structname][0][0] != time_column_name_: - sensor_store_[structname].insert(0,[time_column_name_] + list(map(str,range(0,sensor_cols_num_[structname])))) + sensor_store_[structname].insert(0,[time_column_name_] + list(map(lambda n: "Sensor %d"%n,range(0,sensor_cols_num_[structname])))) # add values - sensor_store_[structname].append([ts] + lastest_values_[structname]) + sensor_store_[structname].append([ts] + latest_values_[structname]) #cap list lenght if uwscfg.json_limit_list_len: @@ -291,7 +295,7 @@ if __name__ == "__main__": addEventToTempLastValueStore(structname, dictdata) - logging.debug("lastdata:"+str(lastest_values_)) + logging.debug("lastdata:"+str(latest_values_)) if int(time.time()) - last_update < int(uwscfg.json_updateinterval): continue @@ -300,6 +304,7 @@ if __name__ == "__main__": addEventsToStore() cleanTempLastValueOfMovementValues() + logging.debug("post-cleanMovement lastdata:"+str(latest_values_)) backup_counter += 1 # save sensor_store_ to json for apache