Car-PC.info

cPOS - cPOS Event Handler

fuchs - Sa 27 Aug, 2005 00:42
Titel: cPOS Event Handler
Hi,

ab cPOS V0.99.48 gibt es mit dem "Event Handler" die Möglichkeit, Alle funktionen von cPOS durch Eingangsinformationen zu steuern.

es gibt dafür eine einfache logik-sprache , mit der man
in abhängigkeit von beliebigen eingangssignalen
beliebige aktionen ausführen lassen kann:

eingangssignale können zb. gps daten, tasten
(-kombinationen), uhrzeit, digitale/analoge
eingangssignale, daten vom handy, lautstärke, usw.
sein.

also alles, was auch in cpos angezeigt werden kann.

aktionen können alle dinge sein, die sonst durch
buttons ausgelöst werden ,

z.b. lautstärke ändern, ausgänge setzen, menüs
umschalten, gamma / daynight, sms verschicken, ext.
programme starten, eben alles, was es als "function"
in der uniskin.ini gibt.

zusätzlich können noch warn- und infomeldungen als pop-up
angezeigt werden.
außerdem möglich: sprachausgabe und das automatische abspielen von soundfiles.

das klingt jetzt ziemlich "harmlos", aber überlegt mal,
was man damit für eine unermessliche funktionsvielfalt
bekommt.

damit kann man z.b. folgendes realisieren:
- geschw. abhängige lautstärke regelung
- eiswarner
- ansage "sie sind zuhause", wenn gps koordinaten
stimmen, oder garagentoröffner betätigen
- licht an, wenn lichtsonsor "dunkel" meldet
- helligkeitabhängige skin- oder gamma umschaltung
- zeitansage
- Info "Sabrina hat heute Geburtstag"
- zu bestimmter uhrzeit gammaumschaltung
- fernsteuerung durch sms (ok, etwas übertrieben)
- warnung "schneller 50km/h"
- warnung "handyakku leer"

usw...

die "shortcuts" und die "sendkey" funktionen sind jetzt ebenfalls bestandteil des eventhändlers.
d.h. es ist egal, ob eine taste gedrückt wird, ob
v>200km/h ,ein analoger eingang > 200 oder
tracktime>3minuten.
man kann mit jeder eingangsinformation (und
definierbaren logischen kombinationen) jede aktion
auslösen!

dadurch können auch tastenkombinationen, wie SHIFT+F1
als shortcuts verwendet werden.
für jeden event kann man eine "repeat" funktion
einschalten. (z.b. für vol+ sinnvoll)

außerdem kann (sollte) man auswählen, ob die events schnell (highspeed)
gut für tastenabfragen oder langsam (resourcenschonend, z.b. für gammaumschaltung) abgefragt werden.

Image


kurzanleitung:
in settings auf event handler gehen
- mit add neue logic hinzufügen
- function (wie in uniskin.ini) auswählen und ggf. durch parameter ergänzen eintargen
- event auswählen (z.b. key_<taste> für tasten)
- ggf "highspeed" anklicken, wenn schnelle reaktion gewünscht ist.
- ggf "repeat" anklicken, wenn wiederholfunktion
gewünscht ist.

die events sind erst nach dem verlassen des settingsmenüs mit ok aktiv.

viel spass beim ausprobieren.

gruß,
fuchs

ps: einige Sachen funktionieren noch nicht bzw. sind noch nicht getestet. wenn euch was auffällt bitte melden, danke.
C1500 - Sa 27 Aug, 2005 08:16
Titel:
Hi Fuchs,

ich habe gerade mit freuden gelesen, das du eine geschwindigkeitabhängige Lautstärkeregelung realisiert hast.
DANKE DANKE DANKE !!!!

Nur eine Frage noch:
Wie kann ich die bei mir Umsetzten?
Eine Idee hätte ich:
Aus dem CanBus kann ich ein Speedsignal auslesen.
Allerdings weis ichnicht, wie das Signal aussieht.
Wäre es möglich dieses Signal mit der K8055 auszulesen, bzw auszuwerten?

Kann man vielleicht noch eine Einstellung mit implementieren, das die Lautstärke z.b. um 5 "Einheiten" angehoben wird?
Also z.B. um 20% erhöhen wenn man von 50 auf 150 beschleunigt.

Dann könnte man auch mal mit leiser Musik schnell fahren.

Mein aktuelles Radio hat das nämlich so, und ich hab mich schon sehr daran gewöhnt. (soll aber trotzdem rausfliegen)
((und das nach gerade mal 2 Wochen, die ich den Wagen hab))

Gruß
Peer
fuchs - Sa 27 Aug, 2005 09:45
Titel:
hi peer,

das ist quasi schon drin:
z.b. volume_+3 erhöht um 3 prozentschritte
volume_-3 verringert um 3 prozentschritte

(geht auf für die anderen kanäle, z.b. volume_main+3 oder volume_bass+3)

man könnte also schreiben:

function: volume+3
event: gps_speed > 50

function: volume-3
event: gps_speed < 45

dann würde die lautstärke bei 50km/h angehoben und bei 45km/h abgesenkt

ich muss allerdings noch eine option reinbringen, damit bestimmte aktionen NICHT direkt bei start ausgeführt werden.
C1500 - Sa 27 Aug, 2005 10:42
Titel:
Hi Fuchs,
auch das höhrt sich wieder super an... Smile

Kennst du den Can-Bus Adapter von Dietz?
Da kommt ein Geschwindigkeitssignal für die Navi raus.
Das sollte eigendlich ein genormtes Siganl sein.

Leider weis ichnicht ob das der gleiche "SpeedPuls" ist, der auch zum Tacho geht.

Hast du eine Idee, wie ich dieses Signal auswerten kann?

Gruß
Peer
fuchs - So 28 Aug, 2005 23:40
Titel:
Zitat:
Kennst du den Can-Bus Adapter von Dietz?


nö, sagt mir nichts, aber das geschwindigkeitssignal kannst schon über gps, k8055 iokarte (gala) und demnächst über obd2 auslesen.
Wozu brauchst du da noch einen CAN-Bus adapter?

gruß,
fuchs
divemarc - Mo 29 Aug, 2005 06:45
Titel:
Das mit dem Garagentor öffnen hab ich auch schon überlegt, aber korregiert mich wenn ich falsch liege:
Mein Grundstück ist einfach zu klein!!!!!
Da ich maximal 5m vom Tor entfernt parke, wie soll er wissen, dass das Tor wieder zu schliessen ist?
Steht dann immer das Tor offen, wenn ich da bin? ;o))))))))
Und wenn ich losfahre, merkt er ja erst nach ein paar Metern, das es wech geht und will das Tor schliessen... wenn ich Glück hab reicht das Funksignal grad noch (reicht so 20m), wenn nicht bleibt das Sch... tor halt weiter offen (kennt es ja schon Razz ).
Jemand eine Idee abgesehen vom Tor gleich aushängen????
manu - Mo 29 Aug, 2005 08:54
Titel:
Hmmm, mein Tor schließt automatisch, wenn ich durch die Lichtschranke gefahren bin.
Zajonara - Mo 29 Aug, 2005 23:01
Titel:
Tolle Sache was Du mit dem Event Handler auf die Beine gestellt hast! Da habe ich ja die nächsten Tage einiges zum Ausprobieren.

Gruß Nico
C1500 - Di 30 Aug, 2005 11:34
Titel:
@Fuchs: Can Bus ist für mich interresant, da ich so meine Lenkradfernbedieung weiter benutzen könnte.

@all: kennt jemand den Blaupunkt Standwart für Lenkradfernbedinung?
Was für ein Signal könnt ich denn da über die K8055 und den Event-Handler auslesen?

Gruß
Peer
all-finder - Mo 05 Sep, 2005 19:46
Titel:
hi fuchs! hab mal wieder etwas getestet... bei mir hat das mit geschwindigkeitbasierten lautstärkenreglung noch nicht so ganz hin gehau'n... wenn ich starte ist er immer bei 0 %.
Zitat:
volume_+3
... habe nur vol+_ (wenn ich mich ganz erinnere...)

möchte im endeffekt, dass bei ca. 20 km +/- die lautstärke angepasst wird...
fuchs - Mo 05 Sep, 2005 20:06
Titel:
Zitat:
ich muss allerdings noch eine option reinbringen, damit bestimmte aktionen NICHT direkt bei start ausgeführt werden.


mit dem nächsten update geht es.

gruß, fuchs
all-finder - Mi 07 Sep, 2005 00:05
Titel:
hallo!
ein paar kleine fragen:

ist in meinem fall high speed sinnvoll?
was hat repeat auf sich? habe es mit einzelnen funktionen getestet z.B. gps_speed > 30 -> wenn ich ein 2. mal langsam fahre, wird dieses auch ohne repeat berücksichtigt.

die gammafunktion & skintauschfunktion geht nur noch über den eventhandler?

passt das soweit?

wäre es möglich, wenn am mic-eingang ein lautes signal (stimme) anliegt, die musik auf mute zu schalten? kann dies von der musik weg - erkannt werden?
astro9481 - Mi 07 Sep, 2005 07:05
Titel:
Falls das nicht klappt mit dem automatischem umschalten am line in, kannst du dir auch folgende platine basteln(paar bauteile) und die gibt dir dann ein digitales signal wenn ein audiosignal anliegt. Das kannst du dann einlesen in cpos und per Event Handler umschalten.

http://www.pocketnavigation.de/board/thread.php?postid=675150#post675150
all-finder - Mi 07 Sep, 2005 10:32
Titel:
die frage ist ja... wie soll es funktionieren, dass das mic, welches sich bei meiner sonnenblende befindet, sich nicht von der musik beeinflussen lässt.

@astro9481: sonst danke, wäre auch interessant...
fuchs - Do 08 Sep, 2005 22:36
Titel:
hi allfinder,

die einträge für die geschwindigkeitsabhängige lautstärkeanpassung stimmen so,

allerdings kannst du statt vol+ auch z.b. volume_+1 schreiben, um selber festzulegen, in welchem maß die lautstärke verändert wird.

für diese anwendung solltest du aber highspeed und repeat abschalten, um den rechenr nicht unnötig zu belasten.
highspeed = abfrage alle 100ms, kein higspeed= alle 1000ms

repeat ist hauptsächlich für eingaben von der tastatur oder anderen eingabgeräten gedacht.
wenn eingeschaltet, wird bei jedem durchlauf (also 100ms oder 1000ms) die function ausgeführt, sollange die bedingung efüllt ist. sonst nur 1x.

die skin und gamma umschaltung geht jetzt ausschließlich über den eventhandler.
die logik stimmt bei dir noch nicht ganz, schau nochmal in den screenshot ganz oben.


die sache mit dem mikro wird nicht funktionieren.
woher soll der pc wissen, was nun sprache und was musik ist?
wär zwar theoretisch möglich, das auszuwerten, aber viel zu aufwändig für eine kleine carpc freeware.

gruß,
fuchs
fuchs - Do 08 Sep, 2005 22:44
Titel:
@c1500:

das tachosignal kannst du mit dem countereingang vom k8055 einlesen.
es ist ein getaktetes 12V signal.
in der uniskin.ini musst du dann statt gps_speed z.b. frqi_0 eintragen.

ab der nächsten version kann man das in der sensor config eintragen und muss im skin dafür nichts mehr ändern .

gruß,
fuchs
Kadir - Mo 31 Okt, 2005 16:35
Titel:
Hallo Leute,
kann mir jemand helfen?? Seit dem ich cpos auf notebook drauf habe komme nicht mehr zu einstellungen rein . (setings). Obwohl ich mehr mals gelöscht und wieder geladen habe. Einstellungs button hat überhaupt kein funktion. Bei home pc geht.
Danke vorraus.
Kadir Rolling Eyes
one-t - Mi 27 Sep, 2006 21:42
Titel:
Bevor ich einen neuen Treath aufmache, frage ich hier mal.
Ich möchte im Event Handler einer Taste eine Funktion zuweisen über key_ ... nun möchte ich aber, das die Funktion nur Funktioniert wenn ich in mainmenu bin! Nur wie mache ich dies???
billy - Mi 27 Sep, 2006 22:35
Titel:
du kannst die funktionen auch direkt in die ini-datei des skins reinschreiben, damit wäre es dann möglich tasten nur in betimmten menüs zuzuweisen.

Key_xxxfunction=openmenu_mediaplayer

z.b. mediaplayer öffnen.

gruß
billy
bmw530 - Mi 27 Sep, 2006 22:59
Titel:
billy83 hat folgendes geschrieben:
du kannst die funktionen auch direkt in die ini-datei des skins reinschreiben, damit wäre es dann möglich tasten nur in betimmten menüs zuzuweisen.

Key_xxxfunction=openmenu_mediaplayer

z.b. mediaplayer öffnen.

gruß
billy


Hi Billy,

ich habs gerade getestet, doch leider funzt es bei mir nicht. Ich hab folgendes geschrieben.


[mainmenu]

Key_49function=openmenu_mediaplayer

Ich habe vor meinen ccStick wie BMW Idrive zu konfigurieren.
Olli84 - Mi 27 Sep, 2006 23:18
Titel:
Hallo!

Du musst bei Event(s) folgendes eintragen: key_XX & activmenu=mainmenu

XX natürlich durch den entsprechenden Code für die Taste ersetzen.

Gruß, Olli
Chris1985 - Mi 27 Sep, 2006 23:20
Titel:
Ich glaube meine Frage passt hier besser als im anderen thread, da ihr hier was ähnliches besprecht:

Hallo Zusammen,

setze mich jetzt seit einigen Tagen mit dem Thema Cpos auseiander,...

Habe erfahren, dass ich nun durch den Eventhandler Tasten(-kombinationen) mit funktionen belegen kann.

Nun wollte ich wissen, ob es auch möglich ist, dass ich z.B. mit "#" direkt ins navi-menü komme, und wenn ich da drin bin z.b. durch tastendruck auf "F11" direkt ins Telefonmenü komme usw...

Muss ja irgendwie möglich sein, und haben ja bestimmt auch leute schon genutzt.. aber ich find darüber im Forum nix.
Also bin ich
1. entweder blind,
2. ist es so einfach, dass noch keiner gefragt hat
3. es nicht möglicht ist, oder
4. es noch keiner so wollte

ciao Chris:)

one-t - Mi 27 Sep, 2006 23:26
Titel:
Es funktioniert. Danke Olli und Billy.
Nur wie kann ich ihm sagen dass in allen anderen Menüs diese key_XX etwas anderes machen soll z.b. listview_down oder so?
Gibt es anstatt dem & keinen and not befehl?
one-t - Mi 27 Sep, 2006 23:30
Titel:
Im Event Handler unter
Funktion: openprog_extprog0
und gib unter
Event(s): key_81 (ist die Q-Taste)
ein. Dann müsste es so klappen dass du ins Navimenü kommst.


Und als 2 Event:
Funktion: openmenu_phone
und gib unter
Event(s): key_122 (ist die F11-Taste)
ein. Damit kommst du dann ins Telefonmenü
Olli84 - Mi 27 Sep, 2006 23:57
Titel:
one-t hat folgendes geschrieben:
Es funktioniert. Danke Olli und Billy.
Nur wie kann ich ihm sagen dass in allen anderen Menüs diese key_XX etwas anderes machen soll z.b. listview_down oder so?
Gibt es anstatt dem & keinen and not befehl?


Das kannst du z. B. so lösen:

Im Hauptmenü soll mit der Taste h das Telefonmenü geöffnet werden und im Telefonmenü soll mit h die Navisoftware gestartet werden. Dafür zwei Events anlegen:

1:
Function: openmenu_phone
Event(s): key_72 & activmenu=mainmenu

2:
Function: openprog_extprog0
Event(s): key_72 & activmenu=phone

Gruß, Olli
one-t - Do 28 Sep, 2006 09:15
Titel:
Ja schon, aber ich meine das Event(s): key_72 nur im Mainmenu die z.b. Function: openmenu_phone haben soll (geht ja über activmenu) und in allen anderen Menü's (ausser halt im Mainmenu) soll: Event(s): key_72 die Function: listview_down haben. Nur wie kann ich bei diesem zweiten Befehl das Mainmenu ausschließen. Oder muss ich dann für jedes Menü einzeln mit activmenu=... der key_72 diesen einen und gleichen Befehl zuordnen?
Olli84 - Do 28 Sep, 2006 09:42
Titel:
Achso, dann kannst du einfach den logischen Operator NOT verwenden.

Bsp.:

Function: listview_down
Event(s): key_72 & activmenu!mainmenu

So klappt das Wink

Gruß, Olli
one-t - Do 28 Sep, 2006 10:34
Titel:
ahso, es klappt.
ich hab die ganze Zeit das NOT als NOT geschrieben und nicht das ! verwendet Idea

Danke Wink

Gruß Thomas
Olli84 - Mi 04 Okt, 2006 20:30
Titel:
Mal eine grundsätzliche Frage zum Eventhandler:

Gibt es ein Maximum an Einträgen im Eventhandler?

Gruß, Olli
all-finder - Mi 04 Okt, 2006 21:04
Titel:
ja.. gab es mal.. damals glaub ich max. 10... danach hat das fuchs aufgebohrt... aber sicher nicht unendlich.. oder schmeißt er bei dir schon eine fehlermeldung...?
Olli84 - Mi 04 Okt, 2006 21:12
Titel:
Ich habs grad einfach mal ein bisschen gefüllt.
Ab Logic25, also der 26. Eintrag, funktioniert nichts mehr Sad

Da bin ich wohl an die Grenzen gestoßen... Das ist aber verdammt ärgerlich! Damit ist jetzt erstmal meine ganze Bedienlogik geplatzt...
manu - Mi 04 Okt, 2006 21:17
Titel:
Ich glaub das Limit wurde damals auf 26 gesetzt, weil somit alle Buchstaben verwendet werden konnten. Wegen den 26 Buchstaben im Alphabet.

Vielleicht kann da ein Entwickler mal was dran machen.

Gruß Manu
fuchs - Mi 04 Okt, 2006 21:29
Titel:
hi,
es ist nur eine zahl, die hochgesetzt werden muß, kein problem für einen programmierer Wink

das mit den buchstaben ist echt abgedreht.... jetzt weiß ich, wie sagen und mythen entstehen... *fg*
manu - Mi 04 Okt, 2006 21:32
Titel:
Wars denn nicht so? Hatte da noch was im Hinterkopf...
Tut mir leid, wenn es nicht stimmt. Neutral
Olli84 - Mi 04 Okt, 2006 21:36
Titel:
Das mit dem Alphabet wäre eine Idee, aber das Alphabet hat 26 Buchstaben und es sind nur 25 möglich Wink
Mumpits - Mo 29 Jan, 2007 15:41
Titel:
sagtmal ich möchte eine playsound immer dann ausführen, wenn cpos gestartet oder wieder maximiert wird.. soll eine begrüßung werden.. wie realisiere ich das?

gibts mittlerweile endlich mal eine liste über die wichtigsten funktionen mit erklärungen? ich find das ganze recht undurchsichtig..
Manuel - Mo 29 Jan, 2007 17:46
Titel: suche Funktion im Eventhandler
suche Funktion im Eventhandler, mit der ich ins Hauptmenü komme. Mit "exit" geht es nicht, weil da die Musik nicht weiterläuft. Welche Funktion kann ich nehmen?

Gibt es eigentlich irgendwo eine Beschreibung der Funktionen des Eventhandlers?
>toxic< - Mo 29 Jan, 2007 18:00
Titel:
...ein klein wenig zu faul zum suchen, oder ihr zwei, @mumpits und manuel?!? Exclamation

@ mumpits: deine gefragte Funktion steht in der cPos wiki. SirGroovy schreibt nicht umsonst "check out the Wiki. Now!"

@ manuel: deine Funktion wäre aus jedem Menü raus:

Function: openmenu_mainmenu*
Event(s): key_xx

*Wobei zu beachten ist, dass das Mainmenü nicht immer Mainmenu heißt- es gibt Skinner, die verwenden mainmenu, andere nehmen main etc. Dazu musst du in die Skin.ini deines verwendeten Skin´s schauen.
Mumpits - Mo 29 Jan, 2007 21:33
Titel:
>toxic< hat folgendes geschrieben:
...ein klein wenig zu faul zum suchen, oder ihr zwei,
@ mumpits: deine gefragte Funktion steht in der cPos wiki. SirGroovy schreibt nicht umsonst "check out the Wiki. Now!"


im wiki habe ich natürlich schon nachgesehen.. jedoch bringt mich der hinweis

"Startup ist nahezu selbsterklärend %u2013 sprich nur beim Starten von cPOS (z.B. Text-ansage %u201EGuten Morgen%u201C %u2013 sicherlich auch amüsant, aber auf Dauer lästig wenn das Auto einen mehrfach begrüßt Wink" nicht weiter.. weil die action speak_test bzw in meinem fall playsound_test.mp3 ja ein event bzw signal haben muss.. und da weiss ich nicht, was ich dort reinschreiben muss..
IT_Uwe - Mo 29 Jan, 2007 21:56
Titel:
Ok, wenn hier schon so viele Fragen stehen, auch eine von mir....

Ich lese mit dem USBCAN Adapter meinen CANBUS aus. Wenn ich den Rückwärtsgang einlege bekomme ich den Wert 62280 ausgegeben. Dieser Wert bleibt so stehen. Ich habe noch keinen zweiten wert gefunden, wenn ich den Gang wieder rausnehme.
Ich möchte mit diesem Wert im Event Handler den Befehl openbox_webcam ausführen. Da der Wert aber nachdem der Rückwärtsgang einmal eingelegt wurde so stehen bleibt (Sensor Config) muss ich ihn irgendwie händisch auf 0 setzen. geht das ??

Ok, natürlich nur so lange, bis ich den Wert gefunden habe, der beim Rückwärtsgang herausnehmen gesendet wird Wink

Danke......
C1500 - Di 30 Jan, 2007 11:05
Titel:
Hi Uwe,

du kannst natürlich auf das Webcambild die Funktion closebox legen.
Dann brauchst du nur auf das Bild tippen und die Box wird geschlossen.

Es ist aber schon merkwürdig, das dein CAN das Signal so beläst.
Den Event kannst du dann natürlich nur einmalig ausführen (also nicht repeat)
Wann fällt das Signal denn wieder ab?

Gruß Peer
Mumpits - Di 30 Jan, 2007 13:16
Titel:
hast du auf meine frage denn auch eine lösung?
IT_Uwe - Di 30 Jan, 2007 18:24
Titel:
@C1500
Ja gute Frage.... wann fällt das Signal ab? Wenn ich CPOS Starte und in die Sensor Config schaue, steht dort der Wert 0. Lege ich den Rückwärtsgang ein, ändert sich der Wert auf 65280. Der Wert bleibt irgendwie so stehen, auch wenn ich den Rückwärtsgang rausnehme. Beim mitschneiden der Daten sehe ich, die ID 54B wird gesendet, 5-6 mal hintereinander, das wars.
ich denke da gibt es noch eine andere ID, die dort etwas zu sagen hat. Da mein Auto beim einlegen des Rückwärtsgangs einiges ausführt.
1. Musik leiser (Skoda Stream Radio)
2. Sensoren hinten einschalten.
3. Bei Regen den Heckwischer betätigen.
4. Rückfahrlicht
5. Abblendung Innenspiegel ausschalten, falls abgeblendet

habe ich etwas vergessen? Wink
SirGroovy2004 - Di 30 Jan, 2007 22:13
Titel:
Zitat:
1. Musik leiser (Skoda Stream Radio)
2. Sensoren hinten einschalten.
3. Bei Regen den Heckwischer betätigen.
4. Rückfahrlicht
5. Abblendung Innenspiegel ausschalten, falls abgeblendet


Shocked Crazy
Mumpits - Fr 02 Feb, 2007 13:32
Titel:
wiederhole mich ungern, aber ich möchte eine playsound immer dann ausführen, wenn cpos gestartet oder wieder maximiert wird.. soll eine begrüßung werden.. wie realisiere ich das?
shaneL - Fr 02 Feb, 2007 16:17
Titel:
falls nur bei cposneustart gewuenscht als event : True = On ( Haeckchen bei Startup ?? )
nach hibernate/standby als event: Resume = On ( KEIN Haeckchen bei Startup)

maximieren /minimieren ist nicht als event auswertbar - zumindest nicht dass ich wuesste.


gruss
Alle Zeiten sind GMT + 1 Stunde
Powered by phpBB2 Plus and Kostenloses Forum based on phpBB