1

Topic: Автомасштабирование графика

При подключении включается автомасштабирование графика. Выставляю вручную масштаб и Fixed scale. При следующем подключении - опять Auto. Как сделать чтоб масштаб оставался таким как я его настроил?

2

Re: Автомасштабирование графика

К сожалению пока никак. Добавим в список доработок.

3

Re: Автомасштабирование графика

Решил проблему "в лоб"
Добавил на график еще две переменные серого цвета. И присвоил им макс и мин значения:
в Setup
  RemoteXY.onlineGraph_1_var2 = 750;
  RemoteXY.onlineGraph_1_var3 = 300;

в Loop
RemoteXY.onlineGraph_1_var1 = analogRead(0);

Теперь масштаб по вертикали постоянный - между заданными линиями макс и мин значений.
Извращение, конечно, но хоть так как-то...

4

Re: Автомасштабирование графика

Вот еще одно извращение.
Если возле графика добавить два поля ввода для целых чисел, а строки с var2 и var3 перенести в Loop,

  RemoteXY.onlineGraph_1_var2 = RemoteXY.edit_1;
  RemoteXY.onlineGraph_1_var3 = RemoteXY.edit_2;

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

5 (edited by riccon 2020-07-23 16:21:23)

Re: Автомасштабирование графика

А если еще создать массив, например

int Archive[1000];

Добавить переменные для millis()

unsigned long previousMillis = 0;
const long interval = 100;    // интервал вывода в милисек

и заполнять его данными по таймеру, например в течении 10 дней по 100 измерений в день, то потом можно вывести его на график с интервалом в 0.1с (быстрее не стоит, начинает глючить Wi-Fi). 

  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
      previousMillis = currentMillis;

    RemoteXY.onlineGraph_1_var1 = Archive[N];
    N++;
  }

Через 100сек получим архив показаний за 10 суток, как в ускоренной прокрутке.  Это избавляет от необходимости держать постоянно телефон на связи с модулем.

6

Re: Автомасштабирование графика

А если для var2 или var3 сделать, опять же с помощью millis(), временные метки, то можно и разметку по времени свою получить, в нужном масштабе.

Например, каждые 1с (будет соответствовать примерно 15 минутам)
RemoteXY.onlineGraph_1_var2 = RemoteXY.edit_1 + 10;

а каждые 10с (это будет соответствовать 1 суткам)
RemoteXY.onlineGraph_1_var2 = RemoteXY.edit_1 + 30;

Внизу будет рисоваться шкала с выбранным масштабом меток времени