
緑、黄、赤で、値がどこにあるべきかを示します。
Scales[0].Ranges.Addは、StartValue、EndValue、Color、Thickness、Captionを持つ帯を描きます。Minimum,Maximum,MajorIntervalandMinorCountでスケールを設定し、Reversedで逆向きにします。StartAngleとSweepAngleで、円形ゲージの円弧の形を決めます。
ダッシュボードと HMI パネル向けに、円形ダイヤルからアナンシエーターまで 10 種類のゲージを用意しています。緑、黄、赤の帯を描き、値が上限を超えたらアラームを発生させ、針を新しい値へ滑らかに動かし、同じゲージをサーバーで PNG や SVG に出力できます。
速度にはダイヤル、液面にはバー、周波数にはデジタル表示、ポンプにはランプ、アラームにはタイル。sgcGauges は、そのすべてを同じスケール、ポインター、範囲、しきい値、テーマで描画します。
円形、リニア、デジタル、LED、LED バー、リング、VU メーター、時計、コンパス、アナンシエーター。
ヒステリシス付きのしきい値は、値が境界を越えるたびにメインスレッドで 1 回だけイベントを発生させます。
どのスレッドからでも Value を設定できます。ブリッジを使えば MQTT、WebSocket、SSE にも接続できます。
VCL、FireMonkey、.NET のコントロールに加えて、サーバーでは PNG と SVG に出力できます。
体験版に付属する sgcGauges のデモから録画しました。

Scales[0].Ranges.Add は、StartValue、EndValue、Color、Thickness、Caption を持つ帯を描きます。Minimum, Maximum, MajorInterval and MinorCount でスケールを設定し、Reversed で逆向きにします。StartAngle と SweepAngle で、円形ゲージの円弧の形を決めます。Animation.Duration の時間をかけてアニメーションします。既定は 300 ms です。Easing で 5 つの曲線から選べます: geLinear, geQuadOut, geCubicOut, geCubicInOut、geBackOut。
TsgcGaugeThreshold は Value、Direction、Hysteresis の幅を持つため、境界付近で揺れる圧力でも発生するのは 1 回だけです。OnThreshold は、値をどのスレッドが書き込んでも、常にメインスレッドで実行されます。Acknowledge が呼ばれるまでタイルを点滅させます。
Theme := utDark または utLight で、文字盤、スケール、ラベル、値が切り替わります。範囲の色は変わりません。SaveToPNG と SaveToSVG は、フォームなしで、すべてのモデルとコントロールで使えます。リニアのスタイル、複数のポインター、コンパス、時計を、デモからそのままご紹介します。

glsBar、glsThermometer、そして Target 付きの glsBullet グラフ。


スケールを設定し、赤い帯とアラームのしきい値を追加し、イージング曲線を選んでから、同じゲージを PNG に出力します。Delphi、C++ Builder、C# で同じ API です。
dotnet add package esegece.sgcGauges.WinForms
uses
SysUtils, Classes, Controls, Forms, sgcUICore_Theme,
sgcGauges_Types, sgcGauges_Model, sgcGauges_VCL;
procedure CreatePressureGauge(aForm: TForm);
var
oGauge: TsgcVCLRadialGauge;
begin
oGauge := TsgcVCLRadialGauge.Create(aForm);
oGauge.Parent := aForm;
oGauge.SetBounds(16, 16, 240, 240);
oGauge.Title := 'Pressure';
oGauge.Units := 'bar';
oGauge.Theme := utDark;
oGauge.Scales[0].Maximum := 10;
oGauge.Scales[0].MajorInterval := 2;
// a red band from 8 to 10 bar
with oGauge.Scales[0].Ranges.Add do
begin
StartValue := 8;
EndValue := 10;
Color := $FFE34948;
end;
// OnThreshold fires once per crossing, in the main thread
with oGauge.Thresholds.Add do
begin
Value := 8;
Hysteresis := 0.5;
Direction := gtdBoth;
end;
oGauge.Animation.Easing := geCubicOut;
oGauge.Value := 6.5;
// the same drawing code exports the gauge to PNG at twice its size
oGauge.SaveToPNG(ExtractFilePath(ParamStr(0)) + 'pressure.png', 2);
end;
sgcGauges は単体でも、sgcUI の Professional と Enterprise に含まれる形でも入手できます。テーマとランタイムを共有する製品と一緒にお使いいただけます。いずれもソースコード付きです。
.NET では、esegece.sgcGauges.Community の NuGet パッケージは無償で、6 種類のゲージが使えます。sgcGauges は All-Access バンドルにも含まれます。
すべての sgcUI 製品は同じランタイム sgcUICore で描画するため、ゲージは周囲のダッシュボード、チャート、エディターと一緒にテーマが切り替わります。

DashboardGauges デモのように、ダッシュボードのタイルに KPI カードと並べてゲージを配置できます。

ゲージの隣にライブチャートを置けば、各値の背後にある推移が分かります。

オペレーターは、スライダーとスピンエディットで上下限や設定値を指定できます。
Standard
Professional で追加
Enterprise で追加
体験版をダウンロードして、Gallery、HMIPanel、DashboardGauges のデモを実行するか、まず全機能をご覧ください。