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.