Чтение и хранение данных из потока - PullRequest
0 голосов
/ 23 января 2020

У меня есть поток данных, поступающих от датчиков на моем распи, и я хочу собрать эти значения в длину размера окна "X", как только окно получит число чтений из потока X, оно вычислит усреднить и передать этот вывод в другую функцию. Вот код:

##---------------------------------------------------------------------------------------------------------------------------------------*
##Alpha trimmer filter, uses the stream to take values of "windowsize" and "alpha" to filter unusually large or small data from the stream.
##---------------------------------------------------------------------------------------------------------------------------------------*

def alpha_mean(window, alpha):
    cut = alpha//2
    data = sorted(window)[cut:-cut]
    store =[]
    for item in data:
        store.append(int(item))
    return sum(store)/len(data)

def alphatrimmer(window_size, alpha, sensor_stream):
    window = []
    for item in (sensor_stream):
        window.append(item)
        if len(window) >= window_size:
            break
        print(window) ***The code stores each integer in the stream into separate parts ex: 256, 225, 285 etc is stored as 2,5,6 and 2,2,5 but I want it to store 256,255,285 etc depending on the window size I allocate***
    yield alpha_mean(window, alpha)

    for item in sensor_stream:
        window.pop(0)
        window.append(item)
        yield alpha_mean(window,alpha)

Исходный поток, который дал мне идею для кода: Как фильтровать поток данных

...