86HMI::Oscilloscope(オシロスコープ)

[視覚化ウィジェット]

オブジェクト関数

Oscilloscopeオブジェクト
このオブジェクトは、測定入力ソースに応じて値を、波形の変化として表示できる高度な機能です。オシロスコープ機能や、値の変化を即時に表示する必要がある入力ソースとして使用できます。

Oscilloscope-1

Oscilloscopeのプロパティ

Oscilloscope-2

Identifier (Identifier (識別子)):

  • ID: オブジェクトを識別する一意の番号
  • Name: オブジェクトのユーザー定義可能な名前。86HMI APIで使用できます。

Content (Content (内容)):

  • Trigger Mode: オシロスコープは波形を描画するモードです。
  • Free Run: 測定値に関係なく、画面は常に更新されます。
  • Positive Slope: 立上りトリガ。 測定値がトリガレベルに達し、正のスロープを持つときに更新されます。
  • Negative Slope: 立下りトリガ。 測定値がトリガレベルに達し、負のスロープを持つときに更新されます。

追加情報:
立上りモードと立下りモードは、主に周期的な高周波信号(通信信号の高周波方形波の測定など)を表示するために使用されます。フリー・ラン・モードでは、センサによって現在測定されている値を表示できます。

  • Time/Div (μs): X軸上の 1つの間隔を示す時間分割。単位は μs です。
  • MaxValue: 縦軸の最大値
  • MinValue: 縦軸の最小値
  • Sample Buffer Size: バッファに記録するサンプル数を設定します。
  • Single Sample Time (μs): サンプリングを行うサンプル・バッファー間隔で、単位はμsです。

Geometry (Geometry (形状)):

  • X: オブジェクトのX座標
  • Y: オブジェクトのY座標
  • Width: オブジェクトの幅
  • Height: オブジェクトの高さ

オプション:

  • X TickText: X軸の主目盛りテキストを表示するかどうかを設定します (X 軸は、時間軸です)。
  • Y TickText: Y軸の主目盛りテキストを表示するかどうかを設定します(Y軸は、時間軸です)。
  • TextFont: 6つのデフォルトのフォントスタイルから選択します。フォントの設定手順については、テーマ管理を参照ください。
  • X-Interval Ticks: X軸のティック間隔
  • Y-Interval Ticks: Y軸のティック間隔
  • Tick Size: 目盛りのサイズで、「なし」、「標準」、「大きい」が選択できます。
  • X Division: X軸のグリッド数
  • Y Division: Y軸のグリッド数
  • Division Line Type: 区切り線の種類で、なし (グリッドなし)、実線 (実線)、破線 (破線) が選択できます。
  • X Border: X軸の境界値
  • Y Border: Y軸の境界値
  • Border Thickness: 境界線の太さ
  • Padding: Left/Right/Bottom/Top: オシロスコープのオブジェクトと境界線間のパディング(余白)・ サイズ (左/右/下/上)
  • Timing Mode: 時間を計算するモード
    1. Realtime: タイムリーなモード。これはオシロスコープの一般的な使用モードで、外部信号を測定する際に元の信号をより正確に表示できます。主に実際の信号を測定するために使用されます。
    2. Manual: マニュアル・モードでは、プログラムを使って生成した弦波形などの自己生成波形を表示できます。また、これを描画することができます。
  • Performance Tuning: 動作中のオシロスコープの滑らかさを設定します。
    1. 最低精度フレームレート
    2. 低フレームレート
    3. 標準フレームレート
    4. 高フレームレート
    5. 高精度

追加情報:
オシロスコープウィンドウが大きすぎる場合、より低いパフォーマンスチューニングを選択する必要がある可能性があります。オシロスコープウィンドウが小さい場合は、より高いパフォーマンスチューニングを選択できます。

  • ObjColor: 4つのテーマカラーから選択します。フォントの設定手順については、テーマ管理を参照ください。
  • Order: オブジェクトの順序。オブジェクトリストに表示されるオブジェクトの順序を上下に調整できます。

API Functions

addOscSample()

説明

オシロスコープのサンプル値を追加します。

構文

void addOscSample(lv_obj_t* id, double value);
void addOscSample(char* name, double value);
void addOscSample(Oscilloscope* id, double value);

媒介変数

  • [in] id
    オブジェクトID
  • [in] name
    オブジェクト名
  • [in] value
    オシロスコープのサンプル値

戻り値

なし

#include "myhmi.h"

double oscData[4] = {100, 75, 50, 0};

void setup() {
  Hmi.begin();
  // ...
}

void loop() {
  // ...
  for (int i = 0; i < 4; i++) {
    Hmi.addOscSample(p1osc1, oscData[i]);
  }
  delay(10);
}

setOscTriggerMode()

説明

オシロスコープのトリガモードを設定します。

構文

void setOscTriggerMode(lv_obj_t* id, OSC_TRIGGER_MODE mode);
void setOscTriggerMode(char* name, OSC_TRIGGER_MODE mode);
void setOscTriggerMode(Oscilloscope* id, OSC_TRIGGER_MODE mode);

媒介変数

  • [in] id
    オブジェクトID
  • [in] name
    オブジェクト名
  • [in] mode
    オシロスコープのトリガモードとして、OSC_POSITIVE_SLOPE/OSC_NEGATIVE_SLOPE/OSC_FREE_RUNのいずれかを設定

戻り値

なし

#include "myhmi.h"

void setup() {
  Hmi.begin();
  // ...
  Hmi.setOscTriggerMode(p1osc1, OSC_POSITIVE_SLOPE);
}

void loop() {
  // ...
}

setOscTriggerLevel()

説明

オシロスコープのトリガレベルを設定します。

構文

void setOscTriggerLevel(lv_obj_t* id, double value);
void setOscTriggerLevel(char* name, double value);
void setOscTriggerLevel(Oscilloscope* id, double value);

媒介変数

  • [in] id
    オブジェクトID
  • [in] name
    オブジェクト名
  • [in] value
    オシロスコープのトリガレベル

戻り値

なし

#include "myhmi.h"

void setup() {
  Hmi.begin();
  // ...
  Hmi.setOscTriggerLevel(p1osc1, 0.0);
}

void loop() {
  // ...
}

setOscTriggerOffset()

説明

オシロスコープのトリガオフセットを設定します。

構文

void setOscTriggerOffset(lv_obj_t* id, long value);
void setOscTriggerOffset(char* name, long value);
void setOscTriggerOffset(Oscilloscope* id, long value);

媒介変数

  • [in] id
    オブジェクトID
  • [in] name
    オブジェクト名
  • [in] value
    オシロスコープのトリガオフセット

戻り値

なし

#include "myhmi.h"

void setup() {
  Hmi.begin();
  // ...
  Hmi.setOscTriggerOffset(p1osc1, 0);
}

void loop() {
  // ...
}

setOscTimeDiv()

説明

オシロスコープのX軸を、ある間隔で表される時間で設定します。

構文

void setOscTimeDiv(lv_obj_t* id, int value);
void setOscTimeDiv(char* name, int value);
void setOscTimeDiv(Oscilloscope* id, int value);

媒介変数

  • [in] id
    オブジェクトID
  • [in] name
    オブジェクト名
  • [in] value
    オシロスコープのX軸に、ある間隔で表される時間

戻り値

なし

#include "myhmi.h"

void setup() {
  Hmi.begin();
  // ...
  Hmi.setOscTimeDiv(p1osc1, 100);
}

void loop() {
  // ...
}

setOscYRange()

説明

オシロスコープのY軸の範囲を設定します。

構文

void setOscYRange(lv_obj_t* id, double min, double max);
void setOscYRange(char* name, double min, double max);
void setOscYRange(Oscilloscope* id, double min, double max);

媒介変数

  • [in] id
    オブジェクトID
  • [in] name
    オブジェクト名
  • [in] min
    Y軸の最小値
  • [in] max
    Y軸の最大値

戻り値

なし

#include "myhmi.h"

void setup() {
  Hmi.begin();
  // ...
  Hmi.setOscYRange(p1osc1, -10.0, 10.0);
}

void loop() {
  // ...
}

setOscYDiv()

説明

オシロスコープの Y軸グリッド・ライン数を設定します。

構文

void setOscYDiv(lv_obj_t* id, double value);
void setOscYDiv(char* name, double value);
void setOscYDiv(Oscilloscope* id, double value);

媒介変数

  • [in] id
    オブジェクトID
  • [in] name
    オブジェクト名
  • [in] value
    オシロスコープの Y軸グリッド・ライン数

戻り値

なし

#include "myhmi.h"

void setup() {
  Hmi.begin();
  // ...
  Hmi.setOscYRange(p1osc1, -10.0, 10.0);
  Hmi.setOscYDiv(p1osc1, 100);
}

void loop() {
  // ...
}

詳細は 86HMIエディタ ユーザーマニュアル には、86HMI ウィジェットとAPIのさらなる説明がございます。

上部へスクロール