Beispiel #1
0
 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)
Beispiel #3
0
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
Beispiel #5
0
    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]))