Was ist Curve Control?

Kurve kann die Datenänderung, steigenden, sinkenden und anderen Trends visuell sehen, die MCU-Erfassung von Daten in der Reihenfolge an den Bildschirm gesendet werden, und dann die Verwendung von Kurvensteuerelementen, um die Probendatenpunkte in einer Kurve zu verbinden, die X-Achse ist die Anzahl der Probenpunkte der Daten, die Y-Achse ist der Datensampelwert
Anwendungsbereich: Die ganze Reihe von
Routinen Download-Link:Kurvensteuerungsanwendung(Klick zum Sprung)
9.1 Eigenschaften von Kurvensteuerungen
Dieses Kapitel behandelt die Eigenschaften von Kurvensteuerungen.

Anzahl der Proben
Die Kurve zeigt die Anzahl der Punkte von links nach rechts im gesamten Bereich der Steuerungsbreite an, wie unten

Beispiel, die Kurvenbreite auf 480 Pixel, die Anzahl der Probenpunkte auf 480 festgelegt, 1 Pixel Punkt entspricht 1 Kurve Probendaten. Dann benötigt die gesamte Breite der Kurve genau 480 Daten, wenn 481 Daten ankommen, aktualisieren Sie die FIFO-Daten, die Kurve nach rechts übersetzen. Wenn die Kurve Breite 200 Pixel ist, die Anzahl der Probenpunkte 201 ist, die gesamte Steuerelement Breite kann nur 200 Probenpunkte anzeigen, dann wird die Kurve auf dem Bildschirm angezeigt, wenn der Datenpunkt 201 Kurve ankommt, wird nach rechts schieben anzeigen
Probentiefe
Ein Bytes der Probendaten. "1Byte", "2Byte" optional, standardmäßig 1Byte
Anzeige Richtung
Anzeige Richtung der Kurve, unterteilt in "Horizontal", "Vertikal"
Horizontale Anzeige, Effekt wie folgt

Vertikale Anzeige, die Wirkung wie folgt zeigt

Liniendicke
Liniendicke der Kurve festlegen, gibt es 1, 2, 3, 4 vier Ebenen zur Auswahl
Skalierungsanzeige
Öffnen Sie die Skalierung, setzen Sie den Startwert der Skalierung, den Endwert, nach den beiden Einstellungen, die Kurve im Bereich dieses Wertes nach oben und unten Dehnen
Nehmen wir an, dass wir den Startwert auf 0, Wenn der Endwert 255 ist, wird die Kurve im Rahmen der Steuerelemente des Kurvensteuerelements auf 0 bis 255 proportional skaliert, wie folgt

Angenommen, dass die Höhe der Kurve 200 ist und die Skalierung der Sinuskurve nicht aktiviert ist, werden die Daten nicht angezeigt, wenn der Wert in der Y-Achse 200 übersteigt, wie folgt

Kanalwert
Bis zu 8 Kanäle können vorbereitet werden. Jeder Kanal kann eine andere Farbe eingestellt werden, Farbeinstellungen helfen, verschiedene Kanäle zu unterscheiden, können Farben im HSB-Modus und RGB-Modus eingestellt werden, wie unten gezeigt.

9.2 Kurve-Steuerung Anwendung
[Kurvensteuerung] Bildschirm, die Benutzergerät und serielle Bildschirm-Kommunikation vorstellen, Benutzergerät sendet Anweisungen an den seriellen Bildschirm, zeigt Echtzeit-Kurven
Bildschirmkonfiguration
Im Bildschirm „Hintergrundbild" importieren Sie das entsprechende Kunstbild. Fügen Sie Kurven - und Tastensteuerelemente in diesem Bildschirm hinzu, wie unten gezeigt.

Attribut-Konfiguration
Kurvenattribut-Konfiguration
Die Einstellung [Anzahl der Abtastenpunkte] auf „466", [Abtastentiefe] auf „1 Byte", [Anzeigeorientierung] auf „Horizontal", [Linie Dicke] auf „1", [Skalierungsanzeige] auf „Ja", [Wert unter der Kurve] auf „0", [Wert oben der Kurve] auf „255", [Kanalzahl] auf „1", konfiguriert wie folgt:

Tasten Eigenschaften Konfiguration
Taste Attribute Konfiguration

Ausführen Vorschau
Ausführen des virtuellen Bildschirms, klicken Sie auf die Sinusoidal-Taste im Bildschirm, das Bildschirm wie folgt zeigt

Externe MCU-Steuerung
Verwenden Sie die Funktionsdeklaration in der Datei him.dever.h im Entwicklungspaket keil und die Definition in der Datei him.dever.c. Zum Beispiel müssen Benutzer "Kurvenanzeige" implementieren, rufen Sie direkt die Funktion GraphChannelDataAdd () auf, um Kurvendaten hinzuzufügen, der Code ist wie folgt:
/************************************************************************
** Function name: void GraphChannelDataAdd(uint16 screen_id,
** uint16 control_id,
** uchar channel
** uint8 *pData,
** uint16 nDataLen);
** Descriptions : 曲线控件-添加数据
** input parameters: screen_id 画面ID
** control_id 控件ID
** channel 通道号
** pData 曲线数据
** nDataLen 数据个数
** output parameters: 无
** Returned value : 无
************************************************************************/
{
......
//添加曲线数据一共256个,请参考源代码
uint8 sin[256]={};
//添加数据到曲线 一次两个数据
GraphChannelDataAdd(0,1,0,&sin[num],2);
}
Antwort veröffentlichen