TauLabs/PicoC: Scripting

ernieift

Erfahrener Benutzer
@Exec: schön gemacht. Ich werde mich mal demnächst darum kümmern, wie man die freien Input-Pins zu statischen Outputs umfunktioniert. Das ist eigentlich recht einfach. Man kann es ja dann im Zusammenhang mit dem Sparky2 machen. So lassen sich dann die LED-Outputs auch einfacher per Script programmieren und man kann entsprechend Deiner Vorlage sie als freien Buzzer nutzen.
Ich war am Wochenende auch fleissig. lolorc hatte einen Bug im NeoPixel (https://github.com/ernieift/NeoPixel_Transceiver) gefunden. Es gab ein Problem mit der maximalen Anzahl der LEDs. Daher habe ich mich nochmal mit der Quelle beschäftigt. Der kann jetzt auch i2c. Es lassen sich auch mehrere parallel betreiben und man kann die LEDs einzeln programmieren. Irgendwie scheint die Arduino-IDE mit steigender Version den verfügbaren RAM zu verringern. SoftSerial frisst jetzt einen Haufen Speicher. Man kann jetzt die i2c-ID im Transceiver anpassen und mehrere ATtinys paralllel betreiben. Damit vereinfacht sich der Aufbau, wenn man einen Streifen pro Arm benutzt. Die "Library" ist auch kleiner und braucht nicht mehr soviel Puffer. Hier mal ein kleiner Test:

Code:
#include "system.h"
#define i2c_address 0x50

void setLED(unsigned char n, unsigned char r, unsigned char g, unsigned char b) {
	unsigned char bufLED[4] = {3*n,g,r,b};
	for (int try=0; try<3; try++) {
		if (i2c_write(2,i2c_address,bufLED,4) == 0)
			break;
		delay(1);
	}
}

/* end of RGB-LED library */

setLED(0,40,0,0);
setLED(1,0,40,0);
setLED(2,0,0,40);
setLED(6,40,0,40);
for (int i=0; i<5; i++) {
	for (int j=0; j<100; j++) {
		setLED(1,0,100-j,j);
		setLED(4,0,j,100-j);
	}
}
Rücklesen des Puffer-RAM sollte auch gehen. Habe ich mit einem I2C-ISP Adapter probiert. Man kann maximal 16 Bytes pro I2C-Operation übertragen und der Refresh erfolgt sofort nach dem Transfer.
Viel Spass damit
 

Exec

Erfahrener Benutzer
Auch nochmal danke für deine Unterstüzung und Input.
Habe jetzt noch im Taulabs Wiki die GPIO Funktionen in der system.h library hinzugefügt.

Ansonsten mach ich evtl. bald den nächsten PR für Taulabs, aber hat nichts mit PicoC zu tun. Dazu mehr im Taulabs Hauptthread.
 

Exec

Erfahrener Benutzer
Ich bin übrigens auch schon dabei den TestValue senden Button für das GCS Widget zu implementieren.
Wollte das schon mal bekanntgeben, damit nicht doppelte Arbeit entsteht.
 

ernieift

Erfahrener Benutzer
Wenn Du schon an der GUI dran bist, würde ich vorschlagen, den Button neben des Testvalue zu platzieren. Entweder mit 'update' oder besser als passendes Symbol. Viel Spass beim zeichnen. Die Buttons für Flash-Load/Save musste ich auch selber machen. Ich hatte schon Jahrzehnte nicht mehr gepixelt.
 

Exec

Erfahrener Benutzer
Sieht gut aus, aber Grafik Bearbeitung ist nicht so mein Ding. Da kann ich noch nicht sagen wie lange ich da brauchen würde.

Ansonsten mit dem einfachen Text Button war es ja nur ne Kleinigkeit. GUI fast nur ein bisschen drag&drop, und Code sind ja auch nur ein paar Zeilen.
Nachdem ich gestern mal in die sourcen von dem widget geschaut habe, war schnell klar wie das funktioniert, ist ja gut und übersichtlich programmiert. Hatte mir dann nur kurz angeschaut wie das Auto connect für Signal/slot funktioniert und schon ne recht klare Idee wie ichs umsetzen will.
Daher in der Mittagspause schnell den Post abgesetzt, und heute abend umgesetzt. War ja wie gesagt nur sehr wenig nötig und hat auch auf Anhieb funktioniert.

Ich hatte nur versucht durch die beiden vertikalen Linien das Textfeld und den Button für den test value etwas vom Rest abzugrenzen ohne zuviel zu ändern.
 

ernieift

Erfahrener Benutzer
@Exec: Über Geschmack läßt sich ja streiten :rolleyes:. Aber ein Icon ist immer besser als der schnöde Text.
Was übrigens noch auf der ToDo-Liste für das Widget steht: syntax-highlighting. Da ich eigentlich nichts mit GUI-Programmierung am Hut habe, wäre es ja toll, wenn Du mal einen Blick darauf werfen könntest. Gefunden habe ich zwar einiges, aber es war mir dann doch etwas zu viel Arbeit im ersten Anlauf. Es war mir wichtiger das Widget sauber fertig zu programmieren.
Und da Du ja schon am "Kern des Geschehens" bist...
Vielleicht hast Du ja mehr Elan dazu :D.

Gruss
Jörg
 

Exec

Erfahrener Benutzer
Icon find ich auch besser als Text an dieser Stelle, aber meinst du das jetzige Icon passt nicht?

Ansonsten hatte ich bisher mit GUI programmierung auch kaum was zu tun und mit QT noch nie vorher gearbeitet.
Bin als erstes die Expo Settings in der GCS angegangen um da mal reinzuschnuppern, ist aber dann mehr geworden als gedacht hatte.
Und auch noch nicht fertig, bzw. noch Ideen für weitere Anpassungen, dann aber auch wieder was in /flight, bezüglich des Horizon mode.

Der Button hier war wie gesagt ne Kleinigkeit die ich eingeschoben habe. Syntax-Highlighting hört sich zwar sinnvoll an, aber meine Motivation dazu hält sich im moment noch stark in Grenzen ;)
 

Exec

Erfahrener Benutzer
Ich finde Nr.1 passt besser zu den anderen Icons in dem Widget, basiert ja auch auf dem selben "Pfeil".

Nr.2 basiert auf einem freien Icon das ich schon versucht hab farblich anzupassen (+ dem edit Feld im Híntergrund), aber mit Grafikbearbeitung kenn ich mich nicht aus. Du hattest ja so ein Update/refresh Icon vorgeschlagen, daher habs ich mich auch daran versucht.

Ansonsten noch ein 3. Varainte die ich auch schon fertig hatte, aber gerade nicht gefunden habe:

Basiert auch auf einem in Taulabs schon vorhandenen Icon, das ich aber auch umfärben musste. War vorher blau.
 

ernieift

Erfahrener Benutzer
Auch hübsch, passt aber leider nicht zu den anderen. Nimm Nr1 und gut is 😀. Die anderen können sich ja auch noch äußern.
Habe mir mal Dein Expo-Widget angesehen. Sieht vielversprechend aus.
 

Exec

Erfahrener Benutzer
Mein Favorit bleibt auch Nr.1, aber ich warte wahrscheinlich noch bis der PR mit dem Expo durch ist.
Bis dahin bin ich noch für Input offen ;)
Ansonsten als Nr.4 noch eine kleine modifikation von Nr.3:



Aber schon mal herzlichen Dank für dein Feedback.
 
FPV1

Banggood

Oben Unten