def Kvs_res(self, num, id, TIME): rec = {} rec['raspi_sid'] = self.raspi_sid rec['mode'] = 2 rec['sensor_id'] = self.sensor_id rec['timestamp'] = TIME rec['person'] = self.expr rec['suborder'] = self.Order if id == 0: rec['status'] = 'touched' rec['process_id'] = config['process_machine_id'] elif id == 1: rec['status'] = 'start' rec['process_id'] = num elif id == 2: rec['status'] = 'end' rec['process_id'] = num rec['starttime'] = self.start_time else: rec['status'] = 'released' rec['process_id'] = config['process_machine_id'] rec['starttime'] = self.starttime value = {'record': rec} response = kvs.request(u'/r/' + datasetid + u'/センサーデーター/', 'POST', value)
def send_status(type): global raspi_sid, TIME_DATA, jobnum, Operator2, ope_starttime, job_starttime global label31, label41, label51, label60, button_ope, button_order rec = {} rec['starttime'] = "" if type == 0: rec['status'] = 'touched' button_ope.configure(state=NORMAL) if type == 1: rec['status'] = 'start' button_order.configure(state=NORMAL) if type == 2: rec['status'] = 'released' rec['starttime'] = ope_starttime button_ope.configure(state=DISABLED) if type == 3: rec['status'] = 'end' rec['starttime'] = job_starttime button_order.configure(state=DISABLED) rec['raspi_sid'] = raspi_sid rec['mode'] = 2 rec['timestamp'] = TIME_DATA rec['suborder'] = jobnum rec['process_id'] = config['process_machine_id'] rec['person'] = Operator2 rec['sensor_id'] = config['sensor2'] + config['screanID'] if config['kvs'] == 'ON': value = {'record': rec} try: response = kvs.request(u'/r/' + datasetid + u'/センサーデーター/', 'POST', value) except Exception as e: outLog(e) if config['csv'] == 'ON': dict = [ 'raspi_sid', 'mode', 'status', 'timestamp', 'suborder', 'person', 'sensor_id', 'count', 'starttime', 'process_id' ] keys = rec.keys() data = [] for i in dict: if i in keys: data.append(rec[i]) else: data.append(None) file_name = raspi_sid + '_' + time.strftime("%Y%m%d") + '.csv' file = open(DIR + file_name, 'a') writer = csv.writer(file, lineterminator='\n') writer.writerow(data) file.flush() os.fdatasync(file.fileno()) file.close() label31.configure(text=Operator) label41.configure(text=client) label51.configure(text=jobs) label60.configure(text=num)
def sendIp(): global config, raspi_sid, datasetid # KVSログイン kvs.init(config['kvs_id'], config['kvs_password']) today = datetime.datetime.today() ip = commands.getoutput('hostname -I') value = { 'record': { 'SerialId': raspi_sid, 'IPアドレス': ip, 'タイムスタンプ': today.strftime("%Y-%m-%d %H:%M:%S") } } path = u'/r/' + datasetid + u'/RaspberryPiリスト' response = kvs.request(path, 'POST', value)
def getInfo(path, expr): if config['kvs'] == "OFF": file = open('/home/pi/ShareMaster/' + path + '.csv', 'r') reader = csv.DictReader(file) for line in reader: if expr in line.values(): res = {} for key, value in line.items(): try: res[unicode(key, "shift-jis")] = unicode( value, "shift-jis") except UnicodeDecodeError: res[unicode(key, "shift-jis")] = u'文字エラー' break else: res = kvs.request(u'/r/' + datasetid + '/' + path + '/' + expr, 'GET', None) # print(res) return res
def main(self, file_config, count_setting, raspiId, sensorId, main_sensor): global raspi_sid, config, setting, sensor_no config = file_config setting = count_setting raspi_sid = raspiId sensor_no = sensorId datasetid = config['kvs_datasetid'] kvs.kvs_server = config['kvs_server'] kvs.init(config['kvs_id'], config['kvs_password']) count_file = "/home/pi/tmp_data/Counter/count" + str( setting[1]) + ".csv" # if config['sound']=='ON': # cmd = "sudo python /home/pi/sound/soundinput.py" # subprocess.Popen( cmd .strip().split(" ") ) base_value = float(setting[18]) sma_cycle = int(setting[19]) sma_array = [] COUNT = False wait = False try: f = open("/home/pi/tmp_data/sensor/status" + setting[1] + ".csv", "r") line = csv.reader(f) for row in line: data = row if data[0] == "on": starttime = data[1] updated = False else: updated = True f.close() except: updated = True rec = {} module = "sensor" + sensor_no module = importlib.import_module(module) module.sensor_setup(int(setting[15])) time.sleep(0.01) self.demon = True while self.demon == True: try: val = module.get(int(setting[15])) csv_val = val if sma_cycle > 1: sma_array.append(val) if len(sma_array) > sma_cycle: sma_array.pop(0) val = float(sum(sma_array)) / len(sma_array) # print(val) if setting[16][0:1] == "T": if val > base_value and wait == False: wait = True COUNT = True elif val < base_value: wait = False elif setting[16][0:1] == "F": if val < base_value and wait == False: wait = True COUNT = True if val > base_value: wait = False if setting[20] == "ON": value_csv(csv_val, val) if COUNT == True: if updated == True: starttime = time.strftime("%Y/%m/%d %H:%M:%S") rec['timestamp'] = starttime rec['status'] = 'on' rec['raspi_sid'] = raspi_sid rec['mode'] = 3 rec['sensor_id'] = main_sensor + sensor_no rec['process_id'] = setting[2] data = {'record': rec} if config['csv'] == 'ON': csv_write(rec) if config['kvs'] == 'ON': response = kvs.request( u'/r/' + datasetid + u'/センサーデーター/', 'POST', data) print(rec) tmp_csv() updated = False time.sleep(0.5) if setting[4] == 'ON': alerm_status(setting[1], rec['status']) try: file = open(count_file, "r") count_data = csv.reader(file) for row in count_data: count = int(row[0]) except: file = open(count_file, "w") w = csv.writer(file) w.writerow([0, ""]) count = 0 file.close() f = open(count_file, "w") writer = csv.writer(f) count = count + 1 print("count: ", count) writer.writerow([count, starttime]) f.flush() os.fdatasync(f.fileno()) f.close() COUNT = False except Exception as e: print(e) outLog(e) time.sleep(float(setting[17]))