ftp.nice.ch/pub/next/developer/resources/libraries/LGDCommunicationKit.1.0.N.a.tar.gz#/LGDCommunicationKit-1.0/HeaderFiles/LGDSerialPort.h

This is LGDSerialPort.h in view mode; [Download] [Up]

//
// LGDSerialPort.h
// LGDCommunicationKit, Release 1.0 (prerelease)
//
// Copyright (c) 1993, Looking Glass Design, Inc.
// All rights reserved.
//
// Project Manager:  Paul Girone
// Original Author:  Mike Gobbi
// Creation Date:    June 9, 1993
// $Revision: 1.3 $
//

#import <objc/Object.h>
#import <objc/hashtable.h>
#import <sgtty.h>
#import "LGDBasicPortProtocol.h"

// Status flags
#define LGD_SP_OK		0x0000
#define LGD_SP_DEVICEINUSE	0x0001
#define LGD_SP_ALREADYLOCKED	0x0002
#define LGD_SP_NOTLOCKED	0x0003
#define LGD_SP_ALREADYOPEN	0x0004
#define LGD_SP_NOTOPEN		0x0005
#define LGD_SP_ERRNO		0x0006

#if 0
// The following definitions are found in LGDBasicPortProtocol
// and are repeated here merely for reference

// Disciplines
// (Referenced definitions found in <sgtty.h>)
#define LGD_SP_NEW	NTTYDISC
#define LGD_SP_OLD	OTTYDISC

// Modes
#define LGD_SP_RAW		0x0000
#define LGD_SP_CBREAK		0x0001
#define LGD_SP_COOKED		0x0002

// Speeds
// (Referenced definitions found in <sgtty.h>)
#define LGD_SP_B0	B0
#define LGD_SP_B50	B50
#define LGD_SP_B75	B75
#define LGD_SP_B110	B110
#define LGD_SP_B134	B134
#define LGD_SP_B150	B150
#define LGD_SP_B200	B200
#define LGD_SP_B300	B300
#define LGD_SP_B600	B600
#define LGD_SP_B1200	B1200
#define LGD_SP_B1800	B1800
#define LGD_SP_B2400	B2400
#define LGD_SP_B4800	B4800
#define LGD_SP_B9600	B9600

// Parity
// (Referenced definitions found in <sgtty.h>)
#define LGD_SP_EVENPARITY	EVENP
#define LGD_SP_ODDPARITY	ODDP
#define LGD_SP_ZEROPARITY	0x0000
#define LGD_SP_NOPARITY		(EVENP|ODDP)

// Duplex
#define LGD_SP_HALFDUPLEX	0x0000
#define LGD_SP_FULLDUPLEX	0x0001

#endif 0

@interface LGDSerialPort:Object
<LGDBasicPortProtocol>
{

	// Instance variables
	int			status;
	NXAtom			device;
	int			descriptor;
	
	// State variables
	int			discipline;
	struct sgttyb		sgttyb;
	struct tchars		tchars;
	unsigned short		lmode;
	struct ltchars		ltchars;
	struct winsize		winsize;
	struct __spFlags1 {
	
		unsigned	autoSet:1;
		unsigned	autoGet:1;
		
	}			spFlags1;
	struct __spFlags2 {

		unsigned	locked:1;
		unsigned	open:1;

	}			spFlags2;
	
}

// Factory methods
- init;
- copyFromZone:(NXZone *)aZone;
- free;

// Device information
+ (const char *)getLockFile:(char *)buffer
  forDevice:(const char *)device;
+ (int)writeLockFileContents:(int)fileDescriptor
  forDevice:(const char *)device;
+ (const char *)getDeviceFile:(char *)buffer
  forDevice:(const char *)device;

// Connecting
- (BOOL)isDeviceAvailable:(const char *)device;
- setDevice:(const char *)device;
- (const char *)device;
- lock;
- unlock;
- open;
- openWithTimeout:(long)seconds;
- close;
- openAndLockDevice:(const char *)device mode:(int)mode timeout:(long)seconds;
- unlockAndClose;
- (BOOL)isOpen;
- (BOOL)isLocked;
- (int)_fileDescriptor;

// Communication
- (int)sendCharacter:(int)aCharacter;
- (int)sendString:(const char *)aString;
- (int)sendString:(const char *)aString withTrailer:(const char *)trailer;
- (int)sendBlock:(const char *)buffer size:(int)size all:(BOOL)yn;
- (int)getCharacter:(int *)aCharacter;
- (int)getString:(char *)buffer max:(int)bufSize;
- (int)getString:(char *)buffer max:(int)bufSize termChars:(const char *)set;
- (int)getBlock:(char *)buffer size:(int)bufSize all:(BOOL)yn;

// Signals
- raiseBreak;
- lowerBreak;
- sendBreak;
- raiseDTR;
- lowerDTR;
- sendDisconnect;
- pause;
- continue;

// Data buffers
- (BOOL)dataAvailable;
- flushInput;
- flushOutput;
- flush;

// Error status
- clearStatus;
- (int)status;
- (const char *)statusString;

// Modifying states en masse
- applySgttyb:(const struct sgttyb *)arg;
- applyTchars:(const struct tchars *)arg;
- applyLmode:(const unsigned short *)arg;
- applyLtchars:(const struct ltchars *)arg;
- applyWinsize:(const struct winsize *)arg;
- fetchSgttyb:(struct sgttyb *)arg;
- fetchTchars:(struct tchars *)arg;
- fetchLmode:(unsigned short *)arg;
- fetchLtchars:(struct ltchars *)arg;
- fetchWinsize:(struct winsize *)arg;
- applySettings;
- fetchSettings;
- applySettings:(const int *)ldisc
  :(const struct sgttyb *)arg1
  :(const struct tchars *)arg2
  :(const unsigned short *)lmod
  :(const struct ltchars *)arg3
  :(const struct winsize *)arg4;
- fetchSettings:(int *)ldisc
  :(struct sgttyb *)arg1
  :(struct tchars *)arg2
  :(unsigned short *)lmod
  :(struct ltchars *)arg3
  :(struct winsize *)arg4;

// Automating state changes
- setAutoSetEnabled:(BOOL)yn;
- setAutoGetEnabled:(BOOL)yn;
- (BOOL)autoSetEnabled;
- (BOOL)autoGetEnabled;

// Modifying states individually
- setDiscipline:(int)aDiscipline;
- setBaudRate:(int)rateEnumation;
- setNumericBaudRate:(int)rate;
- setParity:(int)parity;
- setCRMassage:(BOOL)yn;
- setDuplex:(int)duplex;
- setMode:(int)mode;
- (int)discipline;
- (int)baudRate;
- (int)numericBaudRate;
- (int)parity;
- (BOOL)CRMassage;
- (int)mode;

// Archiving
- write:(NXTypedStream *)stream;
- read:(NXTypedStream *)stream;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.