Показано с 1 по 10 из 183

Тема: Пожелания к разработчикам

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,254

    По умолчанию

    Цитата Сообщение от bayk Посмотреть сообщение
    если реализовать объектовый список и графики, то туда можно вывести только то, что действительно нужно для быстрого, удобного оперативного контроля, плюс сравнить и проанализировать зависимости одной системы от другой в реальном времени (например поведение регулятора температуры отопления, относительно каскадного управления коллектором и т.д. и т.п.)
    раз уж облако всё равно через интернет, то проще открыть в гуглдиске файл с расширением ipynb в colaboratory с таким кодом
    код на python:

    from datetime import timedelta, datetime
    import matplotlib.pyplot as plt
    from matplotlib import dates
    import pandas as pd
    import numpy as np
    import requests
    import pytest
    import datetime

    from dateutil.relativedelta import relativedelta

    now = datetime.datetime.now()
    old = now + relativedelta(hours=-1)

    class ApiClient:
    def __init__(self, base_address):
    self.base_address = base_address

    def post(self, path="/", params=None, data=None, json=None, headers=None):
    url = f"{self.base_address}{path}"
    return requests.post(url=url, params=params, data=data, json=json, headers=headers)

    def get(self, path="/", params=None, headers=None):
    url = f"{self.base_address}{path}"
    return requests.get(url=url, params=params, headers=headers)

    @pytest.fixture
    def ol_api():
    return ApiClient(base_address="https://api.owencloud.ru/")

    def test_create_token(ol_api):
    data = "{ "login" : "demo@owen.ru", "password" : "demo123" }"
    response = ol_api.post(path="v1/auth/open",data=data)
    assert response.status_code == 200, f"Неверный код ответа, получен {response.status_code}"
    response = response.json()
    return response["token"]

    def test_info_pribors(ol_api, token):
    headers = { 'Authorization' : 'Bearer ' + token }
    response = ol_api.post("v1/device/index",headers=headers)
    assert response.status_code == 200, f"Неверный код ответа, получен {response.status_code}"
    #response = response.json()
    #for unit in response:
    # print(unit["id"],unit["name"])

    def test_info_prib(ol_api, token, unit):
    headers = { 'Authorization' : 'Bearer ' + token }
    response = ol_api.post("v1/device/"+unit,headers=headers)
    assert response.status_code == 200, f"Неверный код ответа, получен {response.status_code}"
    response = response.json()
    unit = response["parameters"][0]
    return unit["id"]

    def test_data(ol_api, token, stuff):
    headers = { 'Authorization' : 'Bearer ' + token }
    data = "{ "ids" : "+str(stuff)+", "start" : ""+old.strftime("%Y-%m-%d %H:%M:%S")+"", "end" : ""+now.strftime("%Y-%m-%d %H:%M:%S")+"", "step" : 100 }"
    print(data)
    response = ol_api.post("v1/parameters/data",headers=headers,data=data)
    assert response.status_code == 200, f"Неверный код ответа, получен {response.status_code}"
    response = response.json()
    fig, ax = plt.subplots(figsize = [18,6], nrows = 1)
    plt.title('Данные из разных источников')
    for unit in response:
    refer = unit["values"]
    col_name = ['PARAMETER']
    df = pd.DataFrame(columns=col_name)
    for val in refer:
    df.loc[pd.to_datetime(val["d"], unit='s')] = [val["v"]]
    df = df.astype('float32')
    ax.plot(df.index, df['PARAMETER'], label= 'ID параметра:'+str(unit['id']) )
    ax.legend(loc = 'upper left', prop=dict(size=12))
    ax.tick_params(axis = 'x', labelrotation = 45)
    plt.show()

    sec_token = ''
    id_param = list()
    if __name__ == "__main__":
    sec_token = test_create_token(ol_api())
    test_info_pribors(ol_api(),sec_token)
    id_param.append( test_info_prib(ol_api(),sec_token,'43539') )
    id_param.append( test_info_prib(ol_api(),sec_token,'43543') )
    id_param.append( test_info_prib(ol_api(),sec_token,'43549') )
    test_data(ol_api(),sec_token,id_param)
    и оперативно посмотреть на одном совместном графике какие нужно приборы, даже если они в разных группах
    Последний раз редактировалось capzap; 22.08.2020 в 09:36.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Похожие темы

  1. Ответов: 8
    Последнее сообщение: 13.05.2014, 18:53
  2. РМ1 пожелания
    от soi в разделе Разработки
    Ответов: 0
    Последнее сообщение: 01.03.2012, 18:17
  3. предложение к разработчикам
    от Дмитрий Альбертович в разделе Разработки
    Ответов: 5
    Последнее сообщение: 09.08.2010, 13:24
  4. разработчикам
    от мастер в разделе Разработки
    Ответов: 0
    Последнее сообщение: 21.07.2009, 17:33
  5. пожелания к плк
    от Сергей71 в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 19.08.2007, 22:04

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •