home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
comm
/
ykh121.zip
/
YKHSRC.ZIP
/
COMIO.C
next >
Wrap
C/C++ Source or Header
|
1992-11-04
|
2KB
|
114 lines
#include "comio.h"
#include "lat.h"
#include "cterm.h"
#include "serial.h"
static unsigned (*compresence)(void );
static unsigned (*comopen )(unsigned char*);
static void (*comclose )(void );
static unsigned (*comsend )(char );
static unsigned (*comready )(void );
static char (*comget )(void );
static char (*comstatus )(void );
static unsigned openport=0;
int com_init() {return 0;}
unsigned com_open(unsigned type, char* service)
{
if (openport)
(*comclose)();
switch (type)
{
case COM1_PORT:
compresence =serial_presence;
comopen =serial_open;
comclose =serial_close;
comget =serial_get;
comsend =serial_send;
comready =serial_ready;
serial_fixport(1);
break;
case COM2_PORT:
compresence =serial_presence;
comopen =serial_open;
comclose =serial_close;
comget =serial_get;
comsend =serial_send;
comready =serial_ready;
serial_fixport(2);
break;
case CTERM_PORT:
compresence =cterm_presence;
comopen =cterm_open;
comclose =cterm_close;
comget =cterm_get;
comsend =cterm_send;
comready =cterm_ready;
break;
case LAT_PORT:
compresence =lat_presence;
comopen =lat_open;
comclose =lat_close;
comget =lat_get;
comsend =lat_send;
comready =lat_ready;
break;
default:
return -1;
}
if ((*compresence)()) return 1;
if ((*comopen)(service)==0)
{
openport=type;
return 0;
}
return 2;
}
void com_close ( )
{
if (openport)
{
(*comclose)();
openport=0;
}
}
unsigned com_send (char c)
{
if (openport)
return (*comsend) (c);
return 0;
}
unsigned com_ready ( )
{
if (openport)
return (*comready) ( );
return 0;
}
char com_get ( )
{
if (openport)
return (*comget) ( );
return 0;
}
char com_status( )
{
if (openport)
return (*comstatus)( );
return 0;
}