EDIP (2407) Programmieren?

Naja ich will ja eigentlich noch im Anstaz etwas fertig bekommen :slight_smile:

RegVar_SendText($registerVariable, chr(27)."MT".chr(1));  

TmTerminal = 1

TouchMakro: TmTerminal
#TE

Es macht allerdings keinen Sinn, dass Terminal über ein Touchmakro aufzurufen!

GEIL GEHT ! !
DANKE! ! ! !

:loveips:

Soweit so gut. Senden und empfangen etc geht nun gnaz gut.

Wenn ich einen Button ans edip sende:

RegVar_SendText($regvar, chr(27)."AT".chr($x1).chr($y1).chr($x1+$g).chr($y1+$g)."m"."T"."Test".chr(0));

Test zeigt mir der Button an.
Aber kann ich dem Button auch gleich sagen was er mir schicken soll oder geht das nicht?
Oder muss ich ein Makro definieren?
Oder kann ich ihm das Makro auch gleich schicken?

ESC AT x1 y1 x2 y2 downCode upCode Text… NUL

‚T‘: Der Bereich von x1,y1 nach x2,y2 wird als Taste definiert.
‚U‘: Das Bild Nr. n1 wird nach x1,y2 geladen und als Taste definiert.
‚down Code‘: (1-255) Rückgabe/Touchmakro beim Drücken der Taste.
‚up Code‘: (1-255) Rückgabe/Touchmakro beim Loslassen der Taste.
(down-/up-Code = 0 drücken/loslassen wird nicht gemeldet).
´Text´: Das erste Zeichen bestimmt die Ausrichtung des Textes
(C=zentriert L=linksbündig R=rechtsbündig) danach folgt eine
Zeichenkette die mit dem akt. Touch-Font in der Taste plaziert wird.
Mehrzeilige Texte werden mit dem Zeichen ‚|‘ ($7C, dez: 124) getrennt;
U x1 y1 n1 ‚NUL‘: ($00) = Zeichenkettenende

So stehts im Handbuch zum eDip. Bei Dir also die Position mit dem „m“ und „T“ vor dem „Test“.

Ich habe es soweit hinbekommen nur leider zeigt mir das edip keinen Button mit einem C an A und B geht. Denke mal weil C ein Steuerzeichen ist. Nur kann ich das irgendwie Escapen oder so ?

$x = 0;$y = 25;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(210).""."A".chr(0));
$x = 20;$y = 25;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(211).""."B".chr(0));
$x = 40;$y = 25;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(212).""."C".chr(0));

Wenn Du kein Makro definierst, woher soll das eDip wissen was es machen soll. :confused:

Habe es oben mal geändert hänge leider noch an einer Stelle.

Hallo Christ,

Du hast derzeit für den DOWN-Code ein ESC drin.

RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(210).""."A".chr(0));

Was Du mit dem „“ vor dem Text machen willst weiß ich nicht aber probier es mal mit

RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(49).chr(50)."A".chr(0));

somit hast Du für das Drücken einen ascii(49) es wird eine „1“ gemeldet und für das loslassen der Taste ein ascii(50) was als „2“ gemeldet wird.

Ich habe zwar lange nix mehr mit dem edip gemacht sollte aber funktionieren.

Hi Werner,
komisch ist nur das ergebniss vom Code hier:

Der erste Button wird angezeigt mit A
Der zweite Button wird angezeigt aber leer.

$y = 25;
$x = 0;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."A".chr(0));
$x = 20;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."C".chr(0));

bzw hier der ganze Code:

R bleibt leer

$y = 25;
$x = 0;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."Q".chr(0));
$x = 20;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."W".chr(0));
$x = 40;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."E".chr(0));
$x = 60;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."R".chr(0));
$x = 80;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."T".chr(0));
$x = 100;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."Z".chr(0));
$x = 120;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."U".chr(0));
$x = 140;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."I".chr(0));
$x = 160;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."O".chr(0));
$x = 180;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."P".chr(0));
$x = 200;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."\x9A".chr(0));

Jetzt fällt es mit wieder ein.

C/R und L sind Steuerzeichen für Center/Left/Right.

Schreib mal als Text Czentriert / Rrechts / Llinks, dann wirst Du sehen was ich meine.

Bä das ist ja doof. Bei Ü schicke ich es ja über diese komische Tabelle:

$x = 60;$g = 17; RegVar_SendText($regvar, chr(27)."AT".chr($x).chr($y).chr($x+$g).chr($y+$g).chr(27).chr(1)."\x4A".chr(0));

ergibt ein J nur irgendwie komme ich eben auf kein C :frowning:

mach als Text „CC“

äh ja danke geht geil aber irgendwie unlogisch :frowning:

Habe mal was aus meinem EDIP ausgepackt.

#AK x1,y1,x2,y2,55,56,"CALLES|AUS"

In diesem Fall schreibt er einen 2-zeiligen Button zentriert mit ALLES AUS.

Warum unlogisch. Merke Dir einfach wenn Du einen Text beginnend mit C, L oder R hast das Du eine L davor setzt für linksbündig.

Spätestens wenn Du mal ein komplettes edip durchprogrammiert hast ist es auch für Dich logisch. :smiley:

Das denke ich auch.

Nun geht soweit alles bis auf die LEDs leichten noch net so wie ich laut Manual:

Output-Port schreiben
(ab V1.6)
W n1 n2
n1=0: Alle Ausgabe-Ports entsprechend n2 (=5/7-Bit Binärwert) einstellen
n1=1…5/7: Ausgabe-Port n1 rücksetzen (n2=0); setzen (n2=1); invertieren (n2=2)

folgendes Ergebnisse bekomme ich nach alles Variaten was alles geschaltet wurde steht im Kommentar. Natürlich die Zeilen einzeln ausgeführt. :slight_smile:

				RegVar_SendText($regvar, chr(27)."YW".chr(n2)."=".chr(1).chr(0));    # Nur 1. Lampe
				RegVar_SendText($regvar, chr(27)."YW".chr(1).chr(0)); # alle 3
				RegVar_SendText($regvar, chr(27)."YW".chr(4).",".chr(0)); # 1. und 3. an
				RegVar_SendText($regvar, chr(27)."YW".chr(6).",".chr(1)); # alle 3 an

Hi,

daran habe ich auch ein bissl gebastelt, bis es ging mit den LEDs:

comport_SendText($Com, chr(27)."YW".chr(0).chr(122));      // alle LED aus 122    binär: 01110000  BIT 5,6,7 auf 1

comport_SendText($Com, chr(27)."YW".chr(0).chr(255-64));    // LED 1 an: 191 binär: 10111111  BIT 7 auf 0
comport_SendText($Com, chr(27)."YW".chr(0).chr(255-32));    // LED 2 an: 223 binär: 11011111  BIT 6 auf 0
comport_SendText($Com, chr(27)."YW".chr(0).chr(255-16));    // LED 3 an: 239 binär: 11101111  Bit 5 auf 0

comport_SendText($Com, chr(27)."YW".chr(0).chr(0));       // alle LED an 122  binär: 00000000  BIT 5,6,7 auf 0

Es kommt halt immer auf folgendes an:
BIT 5 = LED 1
BIT 6 = LED 2
BIT 7 = LED 3

die, die an sein soll(en) müssen auf „0“ sein.
Vielleicht hat ja jemand ne einfacherer Lösung.

Nicht stören, dass es noch comport_SendText… arbeitet. Da hatte ich das EDIP noch über ne XBEE-FUNK_Serielle Strecke ohne Coordinator laufen.

Viele Grüße
Björn