Объединение TCP-сервера и DASH в качестве потоков дает «Нет атрибута Dash» - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь синхронизировать два потока в скрипте Python для работы. Идея заключается в том, чтобы первым потоком был TCP-сервер, который получал бы данные от клиента, сохранял данные в переменной, и эта же переменная должна быть передана второму потоку сценария DASH, который будет создавать график. Используя потоки, я хочу, чтобы график обновлялся при получении новых данных на сервере TCP, например. список обновляется.

Код:

app = dash.Dash()

def dash():
    app.layout = html.Div([
     html.H1('Hardware Praktikum'),
        dcc.Dropdown(
            id='my-dropdown',
         options=[
            {'label': 'Tesla', 'value': 'TSLA'},
            {'label': 'Apple', 'value': 'AAPL'}
        ],
          value='TSLA'
        ),
        dcc.Graph(id='my-graph', animate=True),
        dcc.Interval(
            id='interval-component',
            interval=1*1000, # in milliseconds
            n_intervals=0
        )
    ])

    @app.callback(Output('my-graph', 'figure'), [Input('my-dropdown', 'value')])

    def update_graph(selected_dropdown_value):

        return {
            'data': list }

    if __name__ == '__main__':
        app.run_server()

def server():
    HOST = '******' # Server IP or Hostname
    PORT = 22000 
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print 'Socket created'

#managing error exception

    s.bind((HOST, PORT))
#except socket.error:
#   print socket.error
    #print 'Bind failed '

    s.listen(5)
    print 'Socket awaiting messages'
    (conn, addr) = s.accept()
    print 'Connected'

#List to save data
    list = []
# awaiting for message
    while True:
        data = conn.recv(1024)
        print 'Received data: ' + data
        reply = ''

        # process your message
        #break if no data
        if not data:
            break
        elif ("close"):
            break
        else:
            #append new data
            data=data.split(",")
            list.append((float(data[0]),float(data[1])))    
            reply = 'Saved'

        # Sending reply
        conn.send(reply)

    conn.close() # Close connections




dash = threading.Thread(target=dash)
server = threading.Thread(target=server)

server.start()
dash.start()    

С моей точки зрения логика, стоящая за этим, должна делать свою работу. Видимо я ошибаюсь .. Я получаю

AtributeError: у объекта «Поток» нет атрибута «Тире»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...