Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Multiplex-Analogabfrage und hwcom-Ausgabe Kategorie: Programmierung (von Tom - 5.11.2003 10:49)
Als Antwort auf Multiplex-Analogabfrage und hwcom-Ausgabe von Felix W. - 5.11.2003 9:33

Hallo Felix,

ich denke Du muÃ?t erst mal rausfinden welcher Teil Deines Programms zu langsam ist.
So wie ich Deiner Beschreibung entnehme gliedert sich das ganz in 4 Teile:

1. einlesen der Analogwerte
2. verknüpfen mit den Stringvariablen
3. vergleichen auf Unterschiede
4. senden der geänderten Daten

mit der Funktion system.timer() kann man hier sehr viel herausfinden:
z.b.

Startzeit=system.timer();

//code

Endezeit=system.timer()-Startzeit;

Die Endezeit ist dann die Laufzeit in ms.

Du schreibst, das Du die Strings auf Unterschiede durchsuchst. Ich denke das ist sehr
Zeitaufwendig. Wie wäre den folgende Idee:

Analogwert1= ... wo immer du den Wert herholst

  if Analogwert1 !== Analogwert1_1   { String zusammenbasteln und senden };

  Analogwert1_1=Analogwert1;

und so weiter für alle Werte.

Bei dieser If Anfrage kannst Du dann auch noch eine Toleranz einbauen.

Ich denke das geht erheblich flotter als Strings zu vergleichen.

mfg Tom
 





> Hallo allerseits,
>
> habe ein Programm geschrieben, das in einem Thread ständig drei Analogmultiplexer abfragt und diese
> 24 Analogwerte auf einer Arrayvariablen ablegt. Dann werden diese Werte zum einen (von Potis stammend)
> mit einer Stringvariable verknüpft (z.B. "KOMMANDO:"+Wert in HEX) und zum anderen (von 2- oder mehrfach-
> Schaltern stammend)  direkt in einen String "übersetzt" (z.B. Wert < 300 = "KOMMANDO:A", Wert > 800 =
> "KOMMANDO:C").
> Im Hauptthread werden in einer Schleife diese Strings mit weiteren Steuerzeichen versehen über hwcom
> verschickt. Um den Datenaufwand zu verringern, werden die zu sendenden Strings mit denen des vorigen
> Durchlaufs verglichen und nur bei Unterschied tatsächlich verschickt.
>
> Problem: Das ganze ist ziemlich langsam!  Macht es Sinn, zum Beschleunigen des Ganzen die Analog-
> werte zu vergleichen statt den Strings und die Umwandlung in Strings nur bei Unterschied im Zahlenwert zu
> vollziehen? Wie kann man die Analog-Zahlenwerte "vereinfachen", um nicht bei jeder winzigen Spannungs-
> schwankung (die ja bei den Schalterwerten uninteressant ist) einen "Unterschied" zu haben?
>
> Puh, ein Haufen Material! Wenn nötig, kann ich hier auch noch Programmauszüge posten, wollt es aber
> erst mal so erklären!
>
> Danke im Vorraus!
>
> Felix W




    Antwort schreiben


Antworten:

Re: Multiplex-Analogabfrage und hwcom-Ausgabe (von Felix W. - 5.11.2003 17:28)
    Re: Multiplex-Analogabfrage und hwcom-Ausgabe (von Tom - 5.11.2003 19:15)