Hauptseite
Hauptseite
Alles über CES
Onlineshop
Hilfe-Forum
FAQ: die meist gestellten Fragen
Übersicht der neuesten Beitr&aauml;ge
Das gesamte Forum durchsuchen
CES downloaden/herunterladen
Kontakt
Portal-Community
Anmelden im persönlichen Bereich
 
  Von 2192 jetzt online:
0
 Benutzer
1
 Fahrzeug
 

Auf Facebook:
CES 4 - Chamele..

nur 34.90 €
Starter-Bundle ..
statt 111.89 €
nur 98.00 €
CarPC-Bundle..
statt 854.88 €
nur 699.00 €
VDO-Lenkradfern..
statt 59.00 €
nur 29.00 €
Starter-Bundle:..
statt 113.90 €
nur 79.00 €
1&1 UMTS-Notebo..

nur 9.99 €
OBDII-Interface..
statt 39.99 €
nur 37.90 €


App: Per GETVALUE mehrere Werte auf einmal abfragen
Verfasser Nachricht
Freeze Offline
Posting Freak
*****

Beiträge: 1.864
Registriert seit: Jun 2009
Beitrag: #21
RE: App: Per GETVALUE mehrere Werte auf einmal abfragen
Ich hab nur keine Ahnung, wie ich das in einem Nebenthread laufen lassen soll.

Ich weiĂźe dem Event DataArrival meines SendOCX-Objekts einfach eine Funktion zu. Die wird dann eben aufgerufen, sobald das Event eintritt.
Wie kann ich sowas denn in einem komplett seperaten Thread laufen lassen?

BMW 318d E90 | M2-ATX | ASUS AT3N7A-I | Intel Atom 330 | 2GB RAM | 120GB Vertex 3 SSD | SB Audigy 2 ZS (kX) | Faytech 10,4" TS | MSI US300EX WLAN | Navilock NL-651EUSB GPS | Navilock NL-317R TMC | Auvisio DM21T DVB-T | Hama Nano Bluetooth | Speedlink COMET Trackball Mini Keyboard | Diamex DXM OBDII | PixelPlus PC1030 RĂĽckfahrkamera | LogiLink VG0001 VideoGrabber | Windows 7 Ultimate x86 | CES Chameleon v4.0.0.24 | RC-Win 4.1.3 | ProgDVB 6.63
10-04-2011 06:39 AM
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Gueven Offline
Super Moderator
******

Beiträge: 4.361
Registriert seit: Dec 2008
Beitrag: #22
RE: App: Per GETVALUE mehrere Werte auf einmal abfragen
Hatte ich schonmal beschrieben: erzeuge ein Timer-Objekt und löse dieses mit einer Verzögerung von 50ms aus, sobald das Event ausgelöst wird. Innerhalb des Events legst Du die empfangenen Werte in eine globale Variable und lagerst die gesamte Bearbeitung in den Timer aus. Den Timer deaktivierst Du gleich beim ersten Aufrufen wieder, sodass es nur einmal durchläuft. Das ist die simpelste Form, eine Entkopplung durchzuführen.

Mein CarPC: CES 4 - Chameleon, Jetaway 1500 Mhz,
1024 MB RAM, 160 GB Festplatte, GPS-Receiver, OBD-
Diag4000, VDO Lenkradfernbedienung, iBus-Anbindung, 7"
transreflektiv Touchdisplay
10-04-2011 10:48 AM
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Freeze Offline
Posting Freak
*****

Beiträge: 1.864
Registriert seit: Jun 2009
Beitrag: #23
RE: App: Per GETVALUE mehrere Werte auf einmal abfragen
Aber es wird doch nicht mal das DataArrival-Event ausgelöst, wenn der Hauptthread ausgelastet ist.
Also wird weder der Timer gestartet, noch die Werte in seperate Variablen geschrieben.
Wenn dann mĂĽsste ich alles andere in seperate Threads auslagern, damit der Hauptthread garnichts zu tun hat.

BMW 318d E90 | M2-ATX | ASUS AT3N7A-I | Intel Atom 330 | 2GB RAM | 120GB Vertex 3 SSD | SB Audigy 2 ZS (kX) | Faytech 10,4" TS | MSI US300EX WLAN | Navilock NL-651EUSB GPS | Navilock NL-317R TMC | Auvisio DM21T DVB-T | Hama Nano Bluetooth | Speedlink COMET Trackball Mini Keyboard | Diamex DXM OBDII | PixelPlus PC1030 RĂĽckfahrkamera | LogiLink VG0001 VideoGrabber | Windows 7 Ultimate x86 | CES Chameleon v4.0.0.24 | RC-Win 4.1.3 | ProgDVB 6.63
10-04-2011 11:28 AM
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Gueven Offline
Super Moderator
******

Beiträge: 4.361
Registriert seit: Dec 2008
Beitrag: #24
RE: App: Per GETVALUE mehrere Werte auf einmal abfragen
Jetzt reden wir wohl aneinander vorbei..?

Also nochmal zusammengefasst: eine Rückkopplung und dadurch "Stockern" von CES kann nur dann stattfinden, wenn zum Zeitpunkt der Kommunikation eine Verzögerung auf der anderen Seite eintritt. Wenn also zum Zeitpunkt des Auslösens des DataArrival-Events Deine App ausgelastet ist, kann sich das auf CES auswirken. Dein Event wird aber nur dann ausgelöst, wenn Du unmittelbar davor eine Anfrage an CES gesendet hast - hier kannst Du also selber reagieren und sicherstellen, dass Du parallel zu dieser Anfrage nicht andere, prozesslastige Aufgaben durchführst.

Und nun zurĂĽck zu Deiner letzten Aussage: bedeutet dass, dass CES stockert, ohne dass Du ĂĽber die IPC mit CES sprichst?

Mein CarPC: CES 4 - Chameleon, Jetaway 1500 Mhz,
1024 MB RAM, 160 GB Festplatte, GPS-Receiver, OBD-
Diag4000, VDO Lenkradfernbedienung, iBus-Anbindung, 7"
transreflektiv Touchdisplay
10-04-2011 01:10 PM
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Freeze Offline
Posting Freak
*****

Beiträge: 1.864
Registriert seit: Jun 2009
Beitrag: #25
RE: App: Per GETVALUE mehrere Werte auf einmal abfragen
Es ist leider kein Stocken, das ich momentan zu 100% nachbilden kann, deshalb ist ja die Fehlersuche so schwer.


Mag sein, dass wir aneinander vorbeireden.

Ich hab dich so verstanden, dass das DataArrival-Event im Hauptthread abgearbeitet wird. Ist mein Hauptthread ausgelastet, wird auch das Event nicht verarbeitet.
Die restliche App lahmzulegen bis die Antwort von CES eintrifft finde ich nicht wirklich gut. Da ist es mir lieber, wenn ich alles andere in einen eigenen Thread bzw. in mehrere eigene Threads packe.

BMW 318d E90 | M2-ATX | ASUS AT3N7A-I | Intel Atom 330 | 2GB RAM | 120GB Vertex 3 SSD | SB Audigy 2 ZS (kX) | Faytech 10,4" TS | MSI US300EX WLAN | Navilock NL-651EUSB GPS | Navilock NL-317R TMC | Auvisio DM21T DVB-T | Hama Nano Bluetooth | Speedlink COMET Trackball Mini Keyboard | Diamex DXM OBDII | PixelPlus PC1030 RĂĽckfahrkamera | LogiLink VG0001 VideoGrabber | Windows 7 Ultimate x86 | CES Chameleon v4.0.0.24 | RC-Win 4.1.3 | ProgDVB 6.63
10-04-2011 04:59 PM
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Gueven Offline
Super Moderator
******

Beiträge: 4.361
Registriert seit: Dec 2008
Beitrag: #26
RE: App: Per GETVALUE mehrere Werte auf einmal abfragen
Zitat:Die restliche App lahmzulegen bis die Antwort von CES eintrifft finde ich nicht wirklich gut
Also man kann die Sache auch gravierend auslegen, obwohl es so nicht ist Wink CES antwortet unmittelbar nach absenden der Anfrage - wir reden hier von Millisekunden. Wie Du deine App-Codestruktur aufbaust, kann ich nicht feststellen, aber ein Programm wird so oder so von oben nach unten abgearbeitet. Wenn Du zur Zeit sowieso nicht mit Threads arbeitest, hast Du nur einen Prozess, welcher abgearbeitet wird. Der Fehler hier wäre, wenn Du nun eine Funktion oder einen Prozess von oben nach unten mit prozesslastigen Aktivitäten so gestaltest, dass irgendwo mittendrinnen die IPC-Schnittstelle abgefragt wird. Das würde bedeuten, dass nach Erhalt der CES-Werte erstmal zig Dinge in Deinem Prozess abgearbeitet werden müssen, bevor CES vom Thread wieder gelöst wird - und genau das verursacht einen Hänger. Das ist der Nachteil an einer synchronen Kommunkationsbasis, wenn sie nicht sauber genutzt wird. Eine Asynchrone Kommunikation kommt hier gezielt nicht zum Einsatz. Wie Du nun die synchrone Verarbeitung "entkoppelst" (also die liefernde Applikation gleich wieder "lös lässt", sobald die Werte übertragen wurden) habe ich Dir ja bereits mit dem Timer sehr simpel als Beispiel genannt.

Hin oder her: die IPC-Schnittstelle von CES4 hat eine jahrelange Entwicklungsreife hinter sich und aktuell werden ein dutzend werkseitiger Apps und ein weiteres Dutzend Business-Apps über diese Schnittstelle fehlerfrei betrieben. Ich schließe nie aus, dass irgendwo ein Fehler schlummert, aber bei der IPC-Schnittstelle bin ich mir zu 99,99% sicher, dass diese einwandfrei läuft.

Aber da ich das entwickeln individueller Anwender-Apps unterstützen möchte, versuche ich Dir hier zu helfen und die Ursache zu finden. Ich würde vorschlagen, Du zeigst mir den betroffenen, endgültigen Sourcecode.
PS: Threads werden in keiner CES-App genutzt. Das ist immer ein einzelner Thread. Was auch im Normalfall völlig reicht. Wenn man es aber genau nimmt, ist das auslösen eines Timer-Objektes auch schon ein eigenständiger Thread Smile

Mein CarPC: CES 4 - Chameleon, Jetaway 1500 Mhz,
1024 MB RAM, 160 GB Festplatte, GPS-Receiver, OBD-
Diag4000, VDO Lenkradfernbedienung, iBus-Anbindung, 7"
transreflektiv Touchdisplay
(Dieser Beitrag wurde zuletzt bearbeitet: 10-05-2011 12:17 PM von Gueven.)
10-05-2011 12:15 PM
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Freeze Offline
Posting Freak
*****

Beiträge: 1.864
Registriert seit: Jun 2009
Beitrag: #27
RE: App: Per GETVALUE mehrere Werte auf einmal abfragen
Ich arbeite natürlich mit mehreren Threads, aber ich sehe einfach den Fall, das CES aus welchem Grund auch immer irgendwelche Hänger hat, was unbestritten auftreten kann.
Ich werds schon irgendwie hinkriegen Smile

BMW 318d E90 | M2-ATX | ASUS AT3N7A-I | Intel Atom 330 | 2GB RAM | 120GB Vertex 3 SSD | SB Audigy 2 ZS (kX) | Faytech 10,4" TS | MSI US300EX WLAN | Navilock NL-651EUSB GPS | Navilock NL-317R TMC | Auvisio DM21T DVB-T | Hama Nano Bluetooth | Speedlink COMET Trackball Mini Keyboard | Diamex DXM OBDII | PixelPlus PC1030 RĂĽckfahrkamera | LogiLink VG0001 VideoGrabber | Windows 7 Ultimate x86 | CES Chameleon v4.0.0.24 | RC-Win 4.1.3 | ProgDVB 6.63
10-05-2011 12:50 PM
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Gueven Offline
Super Moderator
******

Beiträge: 4.361
Registriert seit: Dec 2008
Beitrag: #28
RE: App: Per GETVALUE mehrere Werte auf einmal abfragen
Gab es diese Hänger schon, bevor Du deine App geschrieben hast? Vielleicht hat es ja nichts mit Deiner App zu tun - sondern ein völlig anderer Grund?!

Mein CarPC: CES 4 - Chameleon, Jetaway 1500 Mhz,
1024 MB RAM, 160 GB Festplatte, GPS-Receiver, OBD-
Diag4000, VDO Lenkradfernbedienung, iBus-Anbindung, 7"
transreflektiv Touchdisplay
10-05-2011 12:55 PM
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Freeze Offline
Posting Freak
*****

Beiträge: 1.864
Registriert seit: Jun 2009
Beitrag: #29
RE: App: Per GETVALUE mehrere Werte auf einmal abfragen
Das mag alles sein Gueven, ich kann momentan echt nichts 100%iges sagen.
Vermute aber nach deinen Aussagen, dass es an meiner App liegt.

BMW 318d E90 | M2-ATX | ASUS AT3N7A-I | Intel Atom 330 | 2GB RAM | 120GB Vertex 3 SSD | SB Audigy 2 ZS (kX) | Faytech 10,4" TS | MSI US300EX WLAN | Navilock NL-651EUSB GPS | Navilock NL-317R TMC | Auvisio DM21T DVB-T | Hama Nano Bluetooth | Speedlink COMET Trackball Mini Keyboard | Diamex DXM OBDII | PixelPlus PC1030 RĂĽckfahrkamera | LogiLink VG0001 VideoGrabber | Windows 7 Ultimate x86 | CES Chameleon v4.0.0.24 | RC-Win 4.1.3 | ProgDVB 6.63
10-05-2011 02:02 PM
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Gueven Offline
Super Moderator
******

Beiträge: 4.361
Registriert seit: Dec 2008
Beitrag: #30
RE: App: Per GETVALUE mehrere Werte auf einmal abfragen
Na das lässt sich ja einfach nachvollziehen: entferne Deine App aus dem App-Verzeichnis und tuckere ein paar Tage ohne die App herum - wenn die Hänger eintreten, ist der Fehler woanders zu suchen :-) wenn nicht, dann ist es erstmal auf Deine App bzw. die IPC-Schnittstelle in Kombination mit Deiner App zurückzuführen. Dann wissen wir zumindest mal, dass wir an der richtigen Stelle suchen!

Bei Letzterem wĂĽrde ich dann auch noch differenzieren zwischen einer App, die nur auf dem CarPC werkelt und einer, die auch Richtiung Fremdplattform kommuniziert (z.B. Android).

Mein CarPC: CES 4 - Chameleon, Jetaway 1500 Mhz,
1024 MB RAM, 160 GB Festplatte, GPS-Receiver, OBD-
Diag4000, VDO Lenkradfernbedienung, iBus-Anbindung, 7"
transreflektiv Touchdisplay
10-05-2011 02:17 PM
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Antwort schreiben 






GoPerfect.de - Automotive-Informatics Seite generiert in 0.052004 Sekunden Impressum