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

Re: Serielle Schnittstelle V24 Kategorie: Programmierung (von reneforster - 7.03.2010 17:59)
Als Antwort auf Serielle Schnittstelle V24 von Torsten - 6.03.2010 12:12
Ich nutze:
C-Control II Unit, C-Control II Station, CC2-ReglerBoard, OSOPT V3.1
Hallo Torsten,

anbei mein funktionierendes Beispiel, vergleiche mit deinem und ändere entsprechend ab.
Ich sende immer 10 stellige Datensätze vom PC zur Control, im nachfolgenden Emfangsthread
werden diese dann aufbereitet, bzw. anderen Programmteilen zur Verfügung gestellt.


im Main Thread so ähnlich

hwcom.init();hwcom.setspeed(6);



im Emfangsthread dann so:


/******************************************************************************
Eingsdaten erfassung vom Server
******************************************************************************/


thread ein232
{

// Varis definieren und setzen -------------------------------------------------
int Befehl;
string s,b,l;

Befehl=0;
s="          ";b="  ";l="    ";



loop
{
global.watchdog1=1;hwcom.flush();

s="          ";b="  ";l="    ";

wait hwcom.rxd();
hwcom.receive(s,10,50);



// nur gültige Datensätze in die Verarbeitung schicken +++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

b="AD" ; if strx.compsel(s,b,2,0) {       // wenn am Anfang ein "AD" ist
   b="E" ; if strx.compsel(s,b,1,9) {     // wenn an letzter Stelle ein "E" ist
   

         stports.togLED(5);   // Anzeige RS232 Empfang an LED 5 ----------------



         // Rolladen Befehle / Datensätze -----------------------------------------
         b="200" ; if strx.compsel(s,b,3,2) {  // Datensätze mit 200 -----------
                 strx.mid(s,l,5,4);            // Befehlsnummer in String l
                 global.BeRo=strx.getNum(l);   // String l in Integer umwandeln
                 continue;}
     
     
         // Für Control Keller ------------------------------------------------
         b="22" ; if strx.compsel(s,b,2,2) {   // Datensätze mit 22 ------------
         global.BeCa=2;global.DaCa2=s ;continue;}

     
         // Für Control Heizung ------------------------------------------------
         b="23" ; if strx.compsel(s,b,2,2) {   // Datensätze mit 23 ------------
         global.BeCa=1;global.DaCa=s ;continue;}


         // Für Control Haus ---------------------------------------------------
         b="24" ; if strx.compsel(s,b,2,2) {   // Datensätze mit 24 ------------
         global.BeAn=1;global.DaAn=s ;continue;}
         


         // Licht Befehle / Datensätze -----------------------------------------
         b="250" ; if strx.compsel(s,b,3,2) {  // Datensätze mit 250 -----------
                 strx.mid(s,l,5,4);            // Befehlsnummer in String l
                 global.BeLi=strx.getNum(l);   // String l in Integer umwandeln
                 continue;}


         // Funktions Befehle / Datensätze -------------------------------------
         b="260" ; if strx.compsel(s,b,3,2) {  // Datensätze mit 260 -----------
                 strx.mid(s,l,5,4);            // Befehlsnummer in String l
                 global.BeFu=strx.getNum(l);   // String l in Integer umwandeln
                 continue;}



         



         // System Befehle -----------------------------------------------------
         b="9990001"; // Watchdog für RS 232 auf Controlseite
         if strx.compsel(s,b,7,2) {global.watchdog1=1;continue;}

         b="9990002"; // Watchdog für I²C Bus auf Controlseite
         if strx.compsel(s,b,7,2) {i2c.init();sleep 150;i2c.stop();continue;}


         b="9990003"; // Software Reset des Systems
         if strx.compsel(s,b,7,2) {
            quit -1;continue;}

         b="9990004"; // Hostmodus einleiten
         if strx.compsel(s,b,7,2) {
            quit 63;continue;}





}} // Ende Abarbeitung gültiger Datensätze +++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



// Anzeige ungültiger Datensätze
// lcdext.clear();lcdext.print("");
// lcdext.line(2);lcdext.print(s);


}}




    Antwort schreiben


Antworten:

Re: Serielle Schnittstelle V24 (von Torsten - 8.03.2010 21:15)
    Re: Serielle Schnittstelle V24 (von reneforster - 9.03.2010 15:06)
    Re: Serielle Schnittstelle V24 (von nitraM - 9.03.2010 13:23)