Article View: de.comp.lang.c++
Article #2036COM-Port streamable
From: Christian Parg
Date: Mon, 08 Apr 1996 12:08
Date: Mon, 08 Apr 1996 12:08
78 lines
2532 bytes
2532 bytes
Ich moechte eine Klasse entwerfen die Bloecke zu der Seriellen
Schnittstelle
schreibt und welche von ihr empfaengt. Die Klasse sollte stremable sein
so dass ich die Schnittstelle in folgender Form beschreiben kann:
COM << oBlock;
COM >> iBlock;
Wobei Com ein Objekt von dieser Klasse sein soll. Und oBlock ein Objekt
vom
Typ Anforderungsblock und entsprechend iBlock ein Objekt vom Typ
Antwortblock.
Zum Empfang habe ich bereits eine static Klasse f�r den Interrupt
entworfen.
(hat schon einige Kopfschmerzen bereitet)
Diese sieht folgendermassen aus:
class TSioInt
{ public:
TSioInt(int cport); // Interrupt verbiegen
~TSioInt(void); // zur�ckbiegen
private:
static void interrupt handler(__CPPARGS); // Interrupthandler
static void interrupt (far * near OldSio)(__CPPARGS); //
Variablendeklaration f�r alten Int.vektor f�r Serielle
};
class Schnittstelle {
public:
Schnittstelle(int datum = com1); // ComPort kann mit �bergeben
werden
boolean write(Anforderungsblock Block);
boolean read(Antwortblock *Block);
~Schnittstelle(void); // Destruktor
void SioIntEin(void){ outportb(irq_mask,inportb(irq_mask) & 0xe7);}
void SioIntAus(void){ outportb(irq_mask,inportb(irq_mask) | 0x18);}
boolean loged_in;
private:
// die Elemente m�ssen static sein damit TSioInt darauf zugreifen
kann
friend class TSioInt; // Klasse TSioInt kennt private Elemente von
Schnittstelle
static int com_port;
static int com_int; // Interruptnummer
static int int_contr;
const int irq_mask; // const ??
static const char eoi;
static unsigned char ring_buffer[MAXBUFFER];
static int empfangszaehler;
static int ein_zeiger;
static int aus_zeiger;
};
W�rde mich freuen wenn jemand eine Anregung oder ein Beispiel von einem
„hnlichen Problem h„tte.
Vielen Dank
Christian
Christian Parg 2:24448/0 (Appolonia)
oder:
christian.parg@uni-duesseldorf.de
Technical Details
Message-ID:
<316901A1.10F8@uni-duesseldorf.de>Path:
arc1-ca.pugleaf.net!news.rz.uni-duesseldorf.de!usenetShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.rz.uni-duesseldorf.de!usenet From: Christian Parg <christian.parg@uni-duesseldorf.de> Newsgroups: de.comp.lang.c++ Subject: COM-Port streamable Date: Mon, 08 Apr 1996 14:08:01 +0200 Organization: Heinrich Heine Universitaet Duesseldorf Message-ID: <316901A1.10F8@uni-duesseldorf.de> NNTP-Posting-Host: modem11.rz.uni-duesseldorf.de Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Mailer: Mozilla 2.0 (Win95; I)