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) |