🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #2036

COM-Port streamable

#2036
From: Christian Parg
Date: Mon, 08 Apr 1996 12:08
78 lines
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!usenet

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