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

hwcom - Hyperterminal Kategorie: Programmierung (von MaBi - 14.12.2002 18:28)


Hallo Forum-Leser,

Bin seit langem jetzt wieder mit der CII beschäftigt und möchte nun meine Heizungssteuerung finalisieren.
Die CII speichert Betriebsdaten, Temperaturen in das RAM-Deveice HS (von Andre, funktioniert spitze -
Gratulation) und lese diese zur Ausgabe auf hwcom wieder aus.

Es wird soweit alles übertragen, nur mu� ich im Hyterterminal (WinXP)
1. zu Beginn der �bertragung irgendeine Taste auf der PC-Tastatur mehrmals drücken, damit die CII Werte
    beginnt zu senden.
2. es werden dann einige Daten übertragen, ich mu� dann immer wieder eine Taste auf der PC-Tastatur
   drücken bis wieder etwas gesendet wird.

Bei vielen Bytes zum �bertragen ist das dann schon sehr mühsam.

Ich habe nun schon versucht eine andere der 4 seriellen Schnittstellen meines PCs zu verwenden, bin mit
der Baudrate runtergegangen, hab das ganze unter Win2000 bzw. Win98 probiert, mit der
Flussteuerung (Hardware, XonXoff, Keine) experimentiert, immer das gleiche.

Kann mir jemand einen Tip geben ?

Danke !

Markus


Hier noch die Funktion wie ich die Daten sende:
function read ()
{
  string s;
  long l_addr;
  long l_var;
  int  i_var;

  l_addr=ADDR_RAM_DATA;

  // Schnittstelle mit 56700,N,8,1 initialisieren
  hwcom.init();
  hwcom.setspeed(8);
  hwcom.flush();
  wait hwcom.ready();

  do
  {
    data_read.date.b_day = ram_hs.readbyte (l_addr, ram_hs.CS1);
    l_addr = l_addr + 1;
    data_read.date.b_month = ram_hs.readbyte (l_addr, ram_hs.CS1);
    l_addr = l_addr + 1;
    data_read.time.b_hour = ram_hs.readbyte (l_addr, ram_hs.CS1);
    l_addr = l_addr + 1;
    data_read.time.b_minute = ram_hs.readbyte (l_addr, ram_hs.CS1);
    l_addr = l_addr + 1;
    data_read.i_br_sek = ram_hs.readint (l_addr, ram_hs.CS1);
    l_addr = l_addr + 2;
    data_read.temp.i_ke = ram_hs.readint (l_addr, ram_hs.CS1);
    l_addr = l_addr + 2;
    data_read.temp.i_so = ram_hs.readint (l_addr, ram_hs.CS1);
    l_addr = l_addr + 2;
    data_read.temp.i_bo = ram_hs.readint (l_addr, ram_hs.CS1);
    l_addr = l_addr + 2;
    data_read.temp.i_sp = ram_hs.readint (l_addr, ram_hs.CS1);
    l_addr = l_addr + 2;
    data_read.temp.i_eg = ram_hs.readint (l_addr, ram_hs.CS1);
    l_addr = l_addr + 2;
    data_read.temp.i_ug = ram_hs.readint (l_addr, ram_hs.CS1);
    l_addr = l_addr + 2;
    data_read.temp.i_au = ram_hs.readint (l_addr, ram_hs.CS1);
    l_addr = l_addr + 2;
   
    // Datum und Uhrzeit
    s="";
    str.putint (s, data_read.date.b_day);
    s=s+pconst.PUNKT;
    str.putint (s, data_read.date.b_month);
    s=s+pconst.STRICHPUNKT;
    str.putint (s, data_read.time.b_hour);
    s=s+pconst.DOPPELPUNKT;
    str.putint (s, data_read.time.b_minute);
    s=s+pconst.STRICHPUNKT;
    str.putint (s, data_read.i_br_sek);
    s=s+pconst.STRICHPUNKT;
    hwcom.print(s);
    wait hwcom.ready();

    // Temperaturen
    s="";
    str.putint (s, data_read.temp.i_ke / 10);     // Kommastelle ausblenden
    s=s+pconst.KOMMA;
    str.putint (s, data_read.temp.i_ke % 10);     // nur Kommastelle filtern
    s=s+pconst.STRICHPUNKT;
    str.putint (s, data_read.temp.i_ug / 10);
    s=s+pconst.KOMMA;
    str.putint (s, data_read.temp.i_ug % 10);
    s=s+pconst.STRICHPUNKT;
    str.putint (s, data_read.temp.i_eg / 10);
    s=s+pconst.KOMMA;
    str.putint (s, data_read.temp.i_eg % 10);
    s=s+pconst.STRICHPUNKT;
    hwcom.print(s);
    wait hwcom.ready();

    s="";
    str.putint (s, data_read.temp.i_bo / 10);
    s=s+pconst.KOMMA;
    str.putint (s, data_read.temp.i_bo % 10);
    s=s+pconst.STRICHPUNKT;
    str.putint (s, data_read.temp.i_sp / 10);
    s=s+pconst.KOMMA;
    str.putint (s, data_read.temp.i_sp % 10);
    s=s+pconst.STRICHPUNKT;
    str.putint (s, data_read.temp.i_so / 10);
    s=s+pconst.KOMMA;
    str.putint (s, data_read.temp.i_so % 10);
    s=s+pconst.STRICHPUNKT;
    hwcom.print(s);
    wait hwcom.ready();

    s="";
    str.putint (s, data_read.temp.i_au / 10);
    s=s+pconst.KOMMA;
    str.putint (s, data_read.temp.i_au % 10);
    s=s+pconst.CR+pconst.LF;
    hwcom.print(s);
    wait hwcom.ready();

  } while (l_addr < l_addr_ram);
}



    Antwort schreiben


Antworten:

Re: hwcom - Hyperterminal (von André H. - 15.12.2002 9:59)
    Re: hwcom - Hyperterminal (von MaBi - 22.12.2002 12:32)