Forum:	cPOS
Téma:	Eventhandler-Logik beim MMI-Bedienteil???
-------------------------------------------------

Black81:
Ist es möglich die Bedienung über das MMI mit Logikfunktionen ala Eventhandler zu versehen? Wichtig wäre mir zb. activprog bzw activmenu.
Kann man eigentlich Tastaturbefehle mit dem MMI senden? (zb. bei drücken der Taste &quot;info&quot; des MMI wird ein Drücken der Taste &quot;Q&quot; der Keyboards simuliert) So könnte ich dann zb den dvb-viewer mit ansteuern.
Dann habe ich noch die Frage, die ich schon in einem anderem Thema gestellt habe, jedoch bisher noch keine Antwort darauf bekam:
Wozu gibt es in der MMI.ini eine &quot;Belegung A&quot; und eine &quot;Belegung B&quot;?
MfG, Stefan.

MR Action:
ja, kannst du - ließ mal die changelog, da steht alles drin....
ja, kannst du - guck mal ins Wiki - der befehl war irgendwas in der art sendkey_[PROGRAMM]_[TASTE]...
Du kannst auf Knopfdruck zwischen Belegung A und Belegung B wechseln - hast quasi doppelt so viele Knöpfe die du irgendwie benutzen kannst... Braucht man in meinen Augen aber nicht...

Grüße,
Micha...

Black81:
Danke erstmal, aber so ganz informativ ist das, was ich bisher gefunden habe, alles nicht.
Eine Sache habe ich gefunden:
Und zwar habe ich gelesen, das zb. &quot;MMIA17=openmenu_mainmenu&quot; klappen sollte. 
Tut es aber nicht! Weder im EH noch in der Skin.ini! Was mach ich falsch???
Vielleicht habe ich ja Tomaten auf den Augen, auch im Wiki finde ich nichts mit sendkey.... Wie geht der Befehl richtig?
Und mit welchem Knopfdruck bzw mit welcher Funktion schalte ich zwischen Belegung A und Belegung B hin und her?
Das mit den Highlights habe ich in der Skin.ini hinbekommen. Kann ich die Tasten eigentlich nur bei Menüs &quot;highlighten&quot; oder geht es zb auch mit &quot;activmedia&quot;? 
Als Vorschlag hätte ich noch die Idee, daß die Highlights nicht nur an und aus zu setzen sind, sondern auch noch blinkend.
MfG, Stefan.

MR Action:
Lesen, nicht überfliegen... :p
MMIA**=?? ist der alte syntax... ein paar zeilen später steht der neu:
MMI[ID]=[BELEGUNG] [TASTENID] [BEFEHL]
Beispiel: MMI0=A 19 TGL_DIGO_4
Die ID wird bei jedem Menüpunkt der skin.ini wieder von vorne beginnend hochgezählt... Mit A bzw. B gibste an bei welcher Belegung du die Taste mit der entsprechenden Tastenid du überschreiben willst... Soviel zur Menüabhängigen Belegung...
Highlighten und Blur haste ja schon hinbekommen - blinken kann das MMI nicht, entsprechend gibts den Befehl auch net... Ob man das noch über nen timer in cpos einbinden will - ich weiß nicht...
Highlighten im EH geht über &quot;mmiselect_[TASTENID]&quot; und aus gehts wieder über &quot;mmiblur_[TASTENID]&quot;... Außerdem gibts noch &quot;mmichange_[TASTENID]&quot; dabei werden alle außer der neuen Tastenid abgeschaltet - also optimal für nen Menüwechsel... ;)
Der Befehl heißt wirklich sendkey_[PROGRAMMNAME]:[KEY], hier nen Beispiel aus meinem Skin:
MMI0=A 25 sendkey_pcnavigator.exe:{ENTER}
MMI1=A 26 exit
MMI2=A 27 sendkey_pcnavigator.exe:{PGUP}
MMI3=A 29 sendkey_pcnavigator.exe:{PGDN}
Befehl zum umschalten der Belegungen musste in der Changelog suchen oder hoffen, das shaneL sie weiß und postet - ich muss da passen... Hab ich net eingebaut, sondern Wal (mein ich) und da ich sie net benutze hab ich sie auch in meinen inis net drin... ;)
Kannste auch per activmedia highlighten - musste halt übern EH gehen, funzt aber super... (da stellt sich mir grade die Frage, wo meine Skin.ini is - in der ich das schon eingebaut hatte)
So, ich hoffe alle Klarheiten beseitigt zu haben...
Grüße,
Micha...
Edit: Zu dem Tachovideo in deiner Sig: Wie steuerste welche Farbe du grade haben willst?

Black81:
Man, da hast Du Dich aber ins Zeug gelegt!!! Danke Dir dafür! War mir ja schon fast peinlich....Da werde ich mich nachher mal dran ausprobieren...
Zu dem Tacho:
Das ist ne eigenständige Schaltung mit 10 wählbaren Lauflichtprogrammen. Diese kann man auch umschalten auf soundgesteuert. Man kann auch manuell die Farbe über drei Potis einstellen. Angesteuert werden die LED´s über PWM.Ein Kollege von mir hat die Schaltung entworfen und die Software geschrieben. Ich hab das einfach nur nachgelötet und eingebaut.
Ich krame mal, ob ich noch den Schaltplan und die hex finde.
Mfg, Stefan.

MR Action:
Brauchste net nach suchen - interessierte mich nur, obs nur munter wechselt oder obs auch was besonderes kann... ;)

Black81:
Tja, die Idee mit der RGB-Beleuchtung war vor dem Car-PC da. Dementspechend isses stand-alone. Reicht aber allemal, ich find das so gut wie es ist.
Eine Frage zum MMI ist mir doch noch eingefallen &quot;nerv - ich weiß ;)&quot; :
Kann man das so einstellen, daß das MMI zusammen mit cPos angeht (ohne den Powerknopf am MMI zu drücken)?
MfG, Stefan.

MR Action:
Ich habs mmi auf der Relaiskarte hängen - also die Stromversorgung vom MMI... Lasse das Relais beim start von cpos einschalten und schon klappt das mit dem Start von der Kommunikation mim MMI...
Ne andere Lösung fällt mir grade nicht ein... ;)
Grüße,
Micha...

C1500:
Das MMI mit ans M2 oder M4 hängen?
Dann ist es an sobald der CPC an ist.
So hab ich das vor.

MR Action:
Ich sag net gern, aber ist es nicht... ;)
Das MMI braucht in einer gewissen (relativ kurzen - ich meine &lt;10sec) Zeit nach dem es Strom bekommen hat eine Antwort vom PC... Drum der &quot;Umweg&quot; über die Relaiskarte...

Black81:
Mit dem blinkenden Highlights ist gar nicht so schwer!
Ich hab mich im EH dem Vorbild einer Klingel bedient (hat lange gebraucht, bis ich drauf gekommen bin).
Ich mach alle 4 Tasten an (mit Wiederholfunktion und Delay)
Und dann die jeweilige Taste auf blur setzen bei select (auch mit Wiederholfunktion).

Hier mal die Logiken:
Logic22Function=mmiselect_9 &amp; mmiselect_10 &amp; mmiselect_11 &amp; mmiselect_12
Logic22Event=activmenu = mediaplayer
Logic22Options=2
Logic22Delay=500
Logic23Function=mmiblur_9
Logic23Event=mmiselect_9 &amp; activmedia = audio
Logic23Options=2
Logic23Delay=0
Logic24Function=mmiblur_9
Logic24Event=activmedia ! audio
Logic24Options=0
Logic24Delay=0
Logic25Function=mmiblur_10
Logic25Event=mmiselect_10 &amp; activmedia = video
Logic25Options=2
Logic25Delay=0
Logic26Function=mmiblur_10
Logic26Event=activmedia ! video
Logic26Options=0
Logic26Delay=0
Logic27Function=mmiblur_11
Logic27Event=mmiselect_11 &amp; activmedia = cd
Logic27Options=2
Logic27Delay=0
Logic28Function=mmiblur_11
Logic28Event=activmedia ! cd
Logic28Options=0
Logic28Delay=0
Logic29Function=mmiblur_12
Logic29Event=mmiselect_12 &amp; activmedia = playlist
Logic29Options=2
Logic29Delay=0
Logic30Function=mmiblur_12
Logic30Event=activemedia ! playlist
Logic30Options=0
Logic30Delay=0
MfG, Stefan.

C1500:
MR Action hat folgendes geschrieben:Ich sag net gern, aber ist es nicht... ;)
Das MMI braucht in einer gewissen (relativ kurzen - ich meine &lt;10sec) Zeit nach dem es Strom bekommen hat eine Antwort vom PC... Drum der &quot;Umweg&quot; über die Relaiskarte...
Dann ist bei dir also cPOS an und dann erst das MMI?
Da ich die Verion aus dem A8 habe reagiert die eh etwas anders bzw. Merkwürdig. 
Ich muss erst den Poweknopf drücken, bevor sich da überhaupt was tut.
Aber das mit den 10sec wusste ich noch nicht. Das könnte mein Porb beheben.
Wer ich mal testen.

MR Action:
Jawohl, cpos öffnet ja nur den COM-Port an dem das MMI hängt und wartet dann auf die Begrüßung vom MMI... Die Begrüßung kommt, wenn du auf den Powerknopf drückst - oder wenn es Strom bekommt (ich meine 10mal im Abstand von einer Sekunde oder irgendwie so... Ich hab jedenfalls noch grob 10sec im Hinterkopf)... Bekommt es darauf keine Antwort gehts wieder aus... Drum halt das Powerknopf drücken, wenn du es zu früh mit Strom versorgst... ;)
Grüße,
Micha....

C1500:
/Ironie ein/
 :banging: UND WARUM ERFAHR ICH DAS ERST JETZT ???:banging: 
/Ironie aus/

Ich war schon mehrfach dabei das Ding wieder von der Wand zu kratzen weil es freiwillig dort hin geflogen ist. ;) 
Und jetzt das....

Danke... Endlich macht das MMI auch für mich einen Sinn. :D
Werd es jetzt einfach per K8055 starten, wenn cPOS an ist.

Aber bovor ich das nicht getestet habe, geb ich noch keine Entwarnung vor tief fliegenden MMI´s

MR Action:
Wieso fragst du mich nicht einfach!? Du solltest doch wissen, das wir zwei uns was Bonushardware und cPOS angeht super ergänzen... ;)

Vik:
C1500 hat folgendes geschrieben:/Ironie ein/
 :banging: UND WARUM ERFAHR ICH DAS ERST JETZT ???:banging: 
/Ironie aus/
Ich war schon mehrfach dabei das Ding wieder von der Wand zu kratzen weil es freiwillig dort hin geflogen ist. ;) 
Und jetzt das....
Danke... Endlich macht das MMI auch für mich einen Sinn. :D
Werd es jetzt einfach per K8055 starten, wenn cPOS an ist.
Aber bovor ich das nicht getestet habe, geb ich noch keine Entwarnung vor tief fliegenden MMI´s
Ich meine ich hätte das auch mal erwähnt....

MR Action:
Das sagen sie alle.... :p

Black81:
Ich mach hier mal weiter....
Im Thread &quot;Audi A6 MMI Bedientel Steckerbelegung&quot; Wurde über die Kommunikation zwischen MMI und cPos diskutiert. Da das dort aber schon recht OT ist, schreibe ich hier weiter.
Zum Nachvollziehen: HIER die Diskusion von Beitrag Nr. 299 bis 307.
Also:
@ MR Action:
Dass das in der Changelog dokumentiert ist, ist schon klar. Und ich hab es jetzt auch halbwegs hinbekommen. Es stört mich aber jetzt was an den mmichange-befehlen:
Kann man bei mmichange noch zwischen 1-8 und 9-12 differenzieren?
Ich meine, daß der Befehl mmichange nur die Highlights für die benannten Menüs beeinflusst. Bzw. dass die Highlights für die 4 Tasten um das gr. Rad dann noch für sich selber &quot;gechanged&quot; werden.
Ich kann das nicht so gut ausdrücken. Ich hoffe, ich werde verstanden.
Also, dass es sozusagen 2 Ebenen gibt: Eine Ebene für die Menütasten und eine andere für die 4 zuweisbaren Tasten. Ich will nämlich mit den Highlights der 4 Tasten zb im Mediaplayer mir die activmedia's anzeigen lassen. 
Ich hoffe, es wist nicht zu verwirrend geschrieben.....:tard: :tard: :tard: :tard:

MR Action:
geht doch, dann aktivier doch einfach beide highlights... *wunder*

Black81:
Ne, so funktioniert es bei mir eben nicht.....
Wohl je nach dem, welcher Befehl zu erst gesetzt wird, wird er von dem folgenden Befehl wohl wieder gelöscht.
Ich hab das jetzt erstmal bei mir so gemacht, daß ich die einen auf change und die anderen auf select gesetzt habe. Beide mit einer sehr hohen wiederholrate. Hat aber den Nachteil, daß die Highlights immer kurz Blinken. Außerden denke ich, daß ich so die Performance unnötig steigere... 
Ich kopier sie mal kurz hier rein...
Logic0Function=evbool_0 &amp; mmiselect_9
Logic0Event=activmedia = audio &amp; activmenu = mediaplayer
Logic0Options=2
Logic0Delay=50
Logic1Function=evbool_1 &amp; mmiselect_10
Logic1Event=activmedia = video &amp; activmenu = mediaplayer
Logic1Options=2
Logic1Delay=50
Logic2Function=evbool_2 &amp; mmiselect_11
Logic2Event=activmedia = cd &amp; activmenu = mediaplayer
Logic2Options=2
Logic2Delay=50
Logic3Function=evbool_3 &amp; mmiselect_12
Logic3Event=activmedia = playlist &amp; activmenu = mediaplayer
Logic3Options=2
Logic3Delay=50
Logic4Function=evbool_4 &amp; mmiselect_9
Logic4Event=digo_0 = Off &amp; digo_1 = Off &amp; digo_2 = Off &amp; activmenu = mainmenu
Logic4Options=2
Logic4Delay=50
Logic5Function=evbool_5 &amp; mmiselect_10
Logic5Event=digo_0 = On &amp; digo_1 = Off &amp; digo_2 = Off &amp; activmenu = mainmenu
Logic5Options=2
Logic5Delay=50
Logic6Function=evbool_6 &amp; mmiselect_11
Logic6Event=digo_0 = Off &amp; digo_1 = On &amp; digo_2 = Off &amp; activmenu = mainmenu
Logic6Options=2
Logic6Delay=50
Logic7Function=evbool_7 &amp; mmiselect_12
Logic7Event=digo_0 = Off &amp; digo_1 = Off &amp; digo_2 = On &amp; activmenu = mainmenu
Logic7Options=2
Logic7Delay=50
Logic8Function=mmichange_1
Logic8Event=activprog = extprog0
Logic8Options=2
Logic8Delay=20
Logic9Function=mmichange_2
Logic9Event=activmenu = sensorinput
Logic9Options=2
Logic9Delay=20
Logic10Function=mmichange_3
Logic10Event=activmenu = obd2
Logic10Options=2
Logic10Delay=20
Logic11Function=mmichange_4
Logic11Event=activmenu = mainmenu
Logic11Options=2
Logic11Delay=20
Logic12Function=mmichange_5
Logic12Event=activmenu = radio
Logic12Options=2
Logic12Delay=20
Logic13Function=mmichange_6
Logic13Event=activmenu = mediaplayer|activprog = extprog1
Logic13Options=2
Logic13Delay=20
Logic14Function=mmiblur_7
Logic14Event=mmiselect_7
Logic14Options=2
Logic14Delay=20
Logic15Function=mmichange_8
Logic15Event=activmenu = phone
Logic15Options=2
Logic15Delay=20
Logic16Function=0
DisableTimer=1
Gruß, Stefan.

MR Action:
Warum machste das nicht über MMIH oder wie es heißt in der Skin.ini - so wie es in der changelog steht, für deine menüs? Und bei change und select gibts auch einen unterschied, denn das eine setzt es alle anderen zurück, das andere markiert einfach nur - musste auch mal in der changelog gucken, was ich da zu den zwei befehlen geschrieben habe...
Das was du da machst is jedenfalls übelst kompliziert und kein echtes Wunder, das es so schlecht läuft... ;)

Black81:
Manchmal sieht man wohl den Wald vor lauter Bäumen nicht. Ich muß wohl noch den Wald finden....
Ich habe auch manchmal das Gefühl, dass ich um 9 Ecken denke obwohl nach zwei Ecken eigentlich schon das Ziel wäre.

Das mit change und select habe ich extra so gemacht, weil wenn beidemale change gesetzt war, haben sie sich gegenseitig zurückgesetzt....

Das mit MMIHS und MMIHD werde ich mir nochmal genauer angucken. Du hattest wohl weiter vorne im Thread doch recht. Zitat: Lesen, nicht überfliegen... 

Na hoffentlich bekomme ich das noch zum Laufen, bevor Du noch bis zur Besinnungslosigkeit mit dem Kopf gegen die Wand haust....:banging::banging::banging:
 :mrgreen::mrgreen::mrgreen: 

Gruß, Stefan.

Black81:
Ich Habe das jetzt mit MMIHS und MMIHD in den entsprechenden Menüs ausprobiert. Funktioniert auch alles soweit. Nur werden die Highlights beim Programmstart leider nur sporadisch gesetzt.
Außerdem kann ich bei den Highlights 9-12 ja auch kein mmichange verwenden (sonst werden 1-8 ja auch gelöscht), ich muß also immer einen setzen und 3 löschen. Das wird also auch wieder ein großer Befehlsblock.
Ich werde also erstmal weiterhin diese Lösung verwenden (Das läuft gut stabil):
Black81 hat folgendes geschrieben:
Logic0Function=evbool_0 &amp; mmiselect_9 
Logic0Event=activmedia = audio &amp; activmenu = mediaplayer 
Logic0Options=2 
Logic0Delay=50 
Logic1Function=evbool_1 &amp; mmiselect_10 
Logic1Event=activmedia = video &amp; activmenu = mediaplayer 
Logic1Options=2 
Logic1Delay=50 
Logic2Function=evbool_2 &amp; mmiselect_11 
Logic2Event=activmedia = cd &amp; activmenu = mediaplayer 
Logic2Options=2 
Logic2Delay=50 
Logic3Function=evbool_3 &amp; mmiselect_12 
Logic3Event=activmedia = playlist &amp; activmenu = mediaplayer 
Logic3Options=2 
Logic3Delay=50 
Logic4Function=evbool_4 &amp; mmiselect_9 
Logic4Event=digo_0 = Off &amp; digo_1 = Off &amp; digo_2 = Off &amp; activmenu = mainmenu 
Logic4Options=2 
Logic4Delay=50 
Logic5Function=evbool_5 &amp; mmiselect_10 
Logic5Event=digo_0 = On &amp; digo_1 = Off &amp; digo_2 = Off &amp; activmenu = mainmenu 
Logic5Options=2 
Logic5Delay=50 
Logic6Function=evbool_6 &amp; mmiselect_11 
Logic6Event=digo_0 = Off &amp; digo_1 = On &amp; digo_2 = Off &amp; activmenu = mainmenu 
Logic6Options=2 
Logic6Delay=50 
Logic7Function=evbool_7 &amp; mmiselect_12 
Logic7Event=digo_0 = Off &amp; digo_1 = Off &amp; digo_2 = On &amp; activmenu = mainmenu 
Logic7Options=2 
Logic7Delay=50 
Logic8Function=mmichange_1 
Logic8Event=activprog = extprog0 
Logic8Options=2 
Logic8Delay=20 
Logic9Function=mmichange_2 
Logic9Event=activmenu = sensorinput 
Logic9Options=2 
Logic9Delay=20 
Logic10Function=mmichange_3 
Logic10Event=activmenu = obd2 
Logic10Options=2 
Logic10Delay=20 
Logic11Function=mmichange_4 
Logic11Event=activmenu = mainmenu 
Logic11Options=2 
Logic11Delay=20 
Logic12Function=mmichange_5 
Logic12Event=activmenu = radio 
Logic12Options=2 
Logic12Delay=20 
Logic13Function=mmichange_6 
Logic13Event=activmenu = mediaplayer | activprog = extprog1 
Logic13Options=2 
Logic13Delay=20 
Logic14Function=mmiblur_7 
Logic14Event=mmiselect_7 
Logic14Options=2 
Logic14Delay=20 
Logic15Function=mmichange_8 
Logic15Event=activmenu = phone 
Logic15Options=2 
Logic15Delay=20 
Logic16Function=0 
DisableTimer=1
Vielleicht kann man doch mal über die Idee nachdenken, die Highlightbefehle in zwei Sparten aufzuteilen. Einmal von 1 bis 8. und einmal von 9 bis 12.
Gruß, Stefan.
